Compare commits

...

421 Commits

Author SHA1 Message Date
wanyaoqi
d78801de92 feat(region,host): hostpinger add cpu usage percent report (#22006) 2025-01-25 15:55:32 +08:00
Jian Qiu
ee67be37ba fix: is_classic is missing from network details (#21994)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-01-21 16:25:33 +08:00
Jian Qiu
54246ddbff fix: add summary statistics switch (#21991)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-01-18 20:14:40 +08:00
wanyaoqi
bed9513cc4 fix(region): snapshot policy with multi disk on same guest fix(region): delete overdued snapshots on cleanup snapshot task only (#21967) 2025-01-16 10:43:12 +08:00
Zexi Li
8b02911971 fix(host): wrap qemu machine info error (#21973) 2025-01-14 20:50:06 +08:00
Jian Qiu
e216b8a6e2 fix: image update input struct param (#21964)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-01-14 02:17:47 +08:00
wanyaoqi
61f72a4050 fix(region): host list add hide cpu topo info option (#21945) 2025-01-14 01:59:25 +08:00
wanyaoqi
5674742f1e fix(region): record snapshot last attched host on delete disk (#21926) 2025-01-07 20:00:07 +08:00
Jian Qiu
d5b26cb86a fix: backup storage support sign version (#21913)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2025-01-01 10:11:26 +08:00
wanyaoqi
efddf8e684 Automated cherry pick of #21894: Fix/host load servers (#21896)
* fix(host): load disks init scsi bus

* fix(region,host): delete instance snapshot progress incorrect
2024-12-30 10:31:43 +08:00
Jian Qiu
faddb1a8db fix: add more filters to isolated_device (#21908)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-12-30 10:30:05 +08:00
wanyaoqi
c46a33213f Automated cherry pick of #21875: Automated cherry pick of #21804: [WIP] fix: add more action log (#21876)
* fix: add more action log

* fix(region): add set cmt bound action
2024-12-29 23:08:57 +08:00
wanyaoqi
f89f201fca fix(host): delete snapshot from storagehandler misc fix (#21884) 2024-12-23 20:43:43 +08:00
Zexi Li
59f0b1d055 fix(monitor): unknown column returned when group by name tag (#21869) 2024-12-20 18:00:30 +08:00
Zexi Li
1fd00a55c3 fix(baremetal): panic when save desc (#21866) 2024-12-20 16:18:47 +08:00
wanyaoqi
d2bef87f7a fix(region): disk show io throttles (#21831) 2024-12-20 11:41:10 +08:00
wanyaoqi
8cb0af6b9e fix(host): optimize storage register failed wiht dup name (#21834) 2024-12-20 11:40:04 +08:00
wanyaoqi
9b36b35b9f fix(climc): host-show hide long content sys_info nic_info metadata (#21850) 2024-12-20 11:11:36 +08:00
Zexi Li
5496190609 fix(host): make telegraf configuration log to debug (#21843) 2024-12-19 15:56:24 +08:00
Jian Qiu
11a30253a2 fix: enfore mfa (#21801)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-12-17 19:39:40 +08:00
Zexi Li
cfbff4c6e8 fix(host): fix the rtl8139 NIC information is missing (#21816)
Co-authored-by: 云原生驿站 <33771248+CloudCourierStation@users.noreply.github.com>
2024-12-17 10:36:35 +08:00
Zexi Li
b6fcbf69ec fix(baremetal-agent): adjust redfish http client timeout to 60s (#21792) 2024-12-13 10:39:35 +08:00
Zexi Li
f7f7684058 feat(webconsole): keep_websocket_session option (#21782) 2024-12-11 14:26:29 +08:00
屈轩
85c50c66db fix(apigateway): add service settings info (#21780) 2024-12-11 11:08:00 +08:00
Zexi Li
51449715d7 feat(monitor): add min and max aggregator (#21767) 2024-12-07 20:58:12 +08:00
Zexi Li
8e369cdaf9 fix(monitor): clone alert dashboard (#21726) 2024-12-03 10:05:56 +08:00
wanyaoqi
8a5f92e483 fix(host,host-deployer): start deployer guest with all of disk (#21711) 2024-12-02 14:59:01 +08:00
wanyaoqi
759ece9157 fix(scheduler,region): fill resource info check guest is in pending usage (#21706) 2024-11-27 10:58:29 +08:00
屈轩
23a50965bf fix(region): zettakit eip create (#21702) 2024-11-26 15:44:29 +08:00
Zexi Li
242067dade Automated cherry pick of #21692: fix: complete monitor metrics (#21697)
* fix: complete monitor metrics

* fix(monitor): remove container related metrics

---------

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-11-26 14:45:47 +08:00
wanyaoqi
1deac016de fix(host): generate ceph conf dup monHosts (#21690) 2024-11-26 14:07:42 +08:00
屈轩
0e5be2411a fix(region): support uis (#21688) 2024-11-26 12:04:20 +08:00
屈轩
3e391b8c87 fix(region): validate zettakit disk size (#21685) 2024-11-26 10:30:36 +08:00
屈轩
8367883903 fix(region): optimized zettakit (#21674) 2024-11-24 13:23:54 +08:00
Zexi Li
967ef380de fix(monitor): set default query select and group by for alerting and panel (#21670) 2024-11-22 19:20:12 +08:00
屈轩
ce44e5eac9 fix(region): support zettakit (#21665) 2024-11-22 17:03:43 +08:00
Zexi Li
69eb5f23a8 feat(monitor): list alertrecords by res_id (#21666) 2024-11-22 16:54:29 +08:00
Zexi Li
74771980c3 fix(monitor): raw_name of influxdb query (#21660) 2024-11-22 15:52:46 +08:00
屈轩
6dd0e1f5f6 fix(region): avoid panic (#21656) 2024-11-22 14:52:56 +08:00
wanyaoqi
1aa8a006ee fix(host): import from libvirt parse live xml (#21649) 2024-11-22 14:52:17 +08:00
屈轩
d004daed62 fix(region): support baidu cloud (#21653) 2024-11-21 16:56:49 +08:00
屈轩
addf0135fc fix(cloudid): vendor update for azure iam (#21645) 2024-11-20 20:15:58 +08:00
屈轩
94b6f9578d fix(region): vendor update for azure vm create (#21640) 2024-11-20 15:12:38 +08:00
Zexi Li
f700d196d9 feat(monitor): support sorting reduced result (#21637) 2024-11-20 11:19:23 +08:00
Zexi Li
c04c2c9370 fix(monitor): set default aggregator and group by for alert model (#21631) 2024-11-19 14:56:40 +08:00
Zexi Li
dc8dbe2cd8 fix(monitor): inject ResType (#21627) 2024-11-19 14:00:23 +08:00
Zexi Li
bf7cb394dd Automated cherry pick of #21619: support telegraf linux_sysctl_fs (#21622)
* support telegraf-sysctl

* feat(monitor): add linux_sysctl_fs measurement
2024-11-18 20:04:41 +08:00
屈轩
2f220f81e6 fix(region): add lb backend group count and listener count for lb details (#21608) 2024-11-17 22:47:03 +08:00
Zexi Li
ba3784e06d fix(region): not sync status when attaching and detaching disk (#21604) 2024-11-14 21:28:16 +08:00
屈轩
9f3bb73ba5 fix(region): shareable virtual resource query (#21597) 2024-11-14 20:35:05 +08:00
屈轩
c41e19f89c fix(region): remove dstack (#21600) 2024-11-14 20:29:52 +08:00
Zexi Li
e51bc1a0d9 fix(monitor): raw_name of group_by (#21595) 2024-11-14 18:01:20 +08:00
屈轩
f7603a5d1c fix(region): allow disable default policy (#21586) 2024-11-14 14:42:28 +08:00
屈轩
608b165684 fix(region): add actual capacity used usage (#21573) 2024-11-12 11:34:55 +08:00
Zexi Li
86bde0d072 fix(monitor): alert notification details (#21579) 2024-11-12 11:28:35 +08:00
屈轩
895f4869fb fix(region): filter unused snapshot (#21562) 2024-11-12 11:16:08 +08:00
Zexi Li
896e0889ec fix(monitor): add metric content for email template (#21568) 2024-11-11 16:09:35 +08:00
Jian Qiu
1a24f1c6f6 fix: disable default dns domain cloud.onecloud.io (#21559)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-11-08 10:09:10 +08:00
屈轩
34076f6a68 fix(region): vendor update for gcp disk name length (#21555) 2024-11-07 15:00:11 +08:00
Jian Qiu
7c0b1b78fa fix: telegraf kakfa ordered configuration (#21549)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-11-07 09:49:36 +08:00
屈轩
7a40f3b21a fix(glance): image stream worker count (#21537) 2024-11-07 09:48:18 +08:00
Zexi Li
ac78690de6 feat(region,climc): server-set-root-disk-matcher (#21546) 2024-11-06 18:53:27 +08:00
Zexi Li
ce4c5f8111 fix(monitor): 修复报警恢复时包含其他资源的问题 (#21541) 2024-11-06 18:52:14 +08:00
屈轩
120f74104f fix(notify): show pretty notify error (#21532) 2024-11-06 10:04:57 +08:00
wanyaoqi
e32a86771f fix(region,host): storage add master host (#21471) 2024-11-06 10:03:50 +08:00
屈轩
8895e6c87b fix(monitor): add order index for monitor panel (#21528) 2024-11-05 17:31:45 +08:00
Zexi Li
9402c6c605 feat(monitor): add system and processes host metrics (#21523) 2024-11-04 19:17:12 +08:00
屈轩
44b9c9dc7a fix(region): vendor update for disable esxi swap (#21515) 2024-11-04 15:09:16 +08:00
Zexi Li
418d4c94d4 fix(region): not set PrimaryZone when no dns_domain configured (#21513) 2024-11-04 12:40:10 +08:00
Jian Qiu
ce7a80a766 fix: disk filter by storage host (#21499)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-10-31 01:49:48 +08:00
Jian Qiu
df4b128c43 feature: kafka telegraf output options (#21494)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-10-30 12:32:41 +08:00
屈轩
668647a829 fix(region): vendor update (#21491) 2024-10-29 18:26:19 +08:00
屈轩
222864f956 fix(region): 避免翻页查询导致公有云实例被误清除 (#21480) 2024-10-28 16:40:56 +08:00
屈轩
4a0c07344e fix(region): purge manager quota (#21477) 2024-10-28 15:50:38 +08:00
Zexi Li
33afd8ae1b feat(webconsole): disable command recording defaultly (#21469) 2024-10-25 21:55:28 +08:00
屈轩
d8b227cb56 fix(cloudmon): cloudpods metric sync (#21462) 2024-10-25 17:54:19 +08:00
wanyaoqi
1671f59220 fix(region,host): ceph add enable messenger v2 options (#21444) 2024-10-25 10:16:08 +08:00
屈轩
dfd0f4a79c fix(region): vendor update (#21440) 2024-10-22 19:57:48 +08:00
Jian Qiu
3877b8a1ef fix: host bond slave nic should use permaddr as mac (#21433)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-10-20 14:42:10 +08:00
屈轩
acf3378ea4 fix(region): support cloudpods secrule ops (#21428) 2024-10-18 16:48:01 +08:00
屈轩
ced0db5887 Revert "fix(region): account probe lock" (#21425)
This reverts commit 7f90d38e5f.
2024-10-18 16:08:02 +08:00
屈轩
ac1f2a035d fix(region): add interface field length (#21421) 2024-10-18 09:52:25 +08:00
Zexi Li
319fbec787 fix(scheduler): avoid_same_host 策略分数过高导致调度分配不均 (#21414) 2024-10-16 10:23:14 +08:00
Zexi Li
9ba4deea95 fix(webconsole): ssh randomly exited error (#21408) 2024-10-14 14:50:56 +08:00
wanyaoqi
3f9510ec41 fix(region): fix default network on get desc (#21397) 2024-10-14 12:35:59 +08:00
wanyaoqi
54c36d25b0 fix(host-deployer): update host-deployer-base to 1.4.9 (#21403) 2024-10-12 14:14:26 +08:00
wanyaoqi
438b72889d fix(host-deployer): do not clean spool dir on save image (#21400) 2024-10-12 10:09:04 +08:00
wanyaoqi
84488d6216 fix(host): set ssd disk default scheduler none (#21363) 2024-10-12 10:03:31 +08:00
wanyaoqi
07793043cd fix(host,glance): qemuimg convert optimize, allow write out of order and increase coroutines (#21374) 2024-10-12 10:01:34 +08:00
屈轩
67ef087f31 fix(region): storage conf update (#21391) 2024-10-11 18:04:57 +08:00
屈轩
faed260f4f fix(region): gcp security group check (#21387) 2024-10-11 17:53:52 +08:00
屈轩
cd8b10e1e9 fix(common): compatible metadata mod find (#21383) 2024-10-11 16:40:19 +08:00
Zexi Li
9ee4b45813 feat(apigateway): add rpc methods of scheduler for apigateway (#21379) 2024-10-10 19:07:42 +08:00
wanyaoqi
e910bf9dec fix(region): check disk is deleted on delete snapshot (#21368) 2024-10-09 21:49:36 +08:00
wanyaoqi
2bf3f78895 fix(host): reconnect qga on failed exec qga commands (#21356) 2024-10-08 10:14:02 +08:00
wanyaoqi
87f3e23ab1 fix: fix slice init length (#21350)
Co-authored-by: cui fliter <imcusg@gmail.com>
2024-10-07 20:09:18 +08:00
wanyaoqi
f5859655f4 fix(region,scheduler): allow req cpu count zero on allocate cpunumapin (#21344) 2024-10-03 20:03:34 +08:00
Jian Qiu
3e670ad61e fix: cloud account filter revisit (#21340)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-10-01 08:49:24 +08:00
wanyaoqi
50647afd2c fix(host): refact qga connection ops (#21337) 2024-09-29 22:53:26 +08:00
Jian Qiu
fadf3944a6 fix: host report ovs kmod version and ksm status (#21328)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-28 20:26:19 +08:00
Zexi Li
c34178acfa fix(region): make parseDeviceInfo error clear (#21325) 2024-09-28 18:35:03 +08:00
Jian Qiu
614e750fd7 fix: upgrade sqlite3 to 1.14.19 (#21319)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-27 07:18:46 +08:00
wanyaoqi
e16cf8438c Automated cherry pick of #21313: Automated cherry pick of #21312: Automated cherry pick of #20996: fix(region,host): lvm snapshot delete and create from backup (#21315)
* fix(region,host): lvm snapshot delete and create from backup

* fix(host): slvm delete snapshot and save images

* fix(host): add option boot vga pci addr

* fix(host): slvm active exclusive mode on convert snapshot
2024-09-27 00:37:44 +08:00
wanyaoqi
884a9ffcee fix(host): check qga is init on check qga runing (#21309) 2024-09-27 00:35:10 +08:00
Zexi Li
eb70e65693 fix(webconsole): close session when ssh session closed (#21296) 2024-09-25 17:15:43 +08:00
屈轩
1d29435908 fix(region): vendor update for cephfs http (#21293) 2024-09-25 17:11:19 +08:00
屈轩
3e8782574a fix(region): filter cloudproviders by regional network zone (#21289) 2024-09-24 18:10:26 +08:00
Jian Qiu
1a233d1bfa fix: remove metadata server from host (#21279)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-21 22:52:16 +08:00
屈轩
ff0743ff5d fix(region): kvm user-data (#21239) 2024-09-20 20:41:39 +08:00
屈轩
26da5181cb fix(region): disk metadata with server (#21253) 2024-09-19 09:54:46 +08:00
Jian Qiu
c42517a099 fix: host build image use go 1.21 (#21264)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-19 03:20:38 +08:00
Jian Qiu
cad7cfa55b fix: update vendor 20240919 3.11 (#21262)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-18 23:07:34 +08:00
Jian Qiu
c28c09364c fix: update vendor 3.11 20240917, upgrade go to 1.21 (#21255)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-18 20:48:18 +08:00
Jian Qiu
1e1e9c3007 fix: update vendor 20240916 (#21247)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-16 19:09:03 +08:00
Jian Qiu
138907b0ec fix: prevent access from anonymous user (#21243)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-14 19:36:51 +08:00
wanyaoqi
77a9ffe2a4 fix(region): guest without cpunumapin don't set params on save schedule result (#21234) 2024-09-14 10:11:35 +08:00
Zexi Li
4900c09d6c Automated cherry pick of #21079: 1、裸金属删除时,GuestUndeployTask会出现无法调用任务完成方法OnGuestUndeployComplete,导致任务卡住的情况 (#21232)
* 1、裸金属删除时,GuestUndeployTask会出现无法调用任务完成方法OnGuestUndeployComplete,导致任务卡住的情况 2、裸金属删除时,回调用baremetal-agent的sync-config接口不止一次,调用时出现请求参数没有传递server_id情况,导致在OnPXEBoot调用getServer时删除了baremetal的server信息,致使后面的DoEraseDisk方法报错

* 1、裸金属删除时,GuestUndeployTask onInit去掉host不为空时的SetStageComplete函数

---------

Co-authored-by: gj <gj@qq.com>
2024-09-13 14:37:05 +08:00
Zexi Li
68671531d3 feat(climc): add public/private command for k8s-container-registry (#21229) 2024-09-13 14:34:43 +08:00
屈轩
09798624a5 fix(cloudmon): vendor update for aws gcp cpu metric (#21226) 2024-09-13 11:58:47 +08:00
Zexi Li
66e5aa0b7e feat(monitor): filter monitor_resource_alert by ip (#21220) 2024-09-12 11:01:14 +08:00
Zexi Li
90e5e3a474 fix(moniotr): filter dirty resource alerts (#21216) 2024-09-12 10:05:14 +08:00
Zexi Li
be43244385 fix(climc): monitor-alert-test-run prints result error (#21211) 2024-09-11 20:04:32 +08:00
Zexi Li
474a90dc31 optimized(monitor): keep 2 precision of reduced value (#21207) 2024-09-11 16:36:52 +08:00
屈轩
a2b21c55b8 fix(region): sync remove guest whith network address (#21200) 2024-09-10 14:25:32 +08:00
屈轩
e7afdcd6dc fix(log): add offline export i18n (#21194) 2024-09-10 14:24:44 +08:00
Zexi Li
5f148c9a03 feat(apigateway): report k3s environment (#21197) 2024-09-10 14:24:07 +08:00
Jian Qiu
2a3cb2107d fix: climc server-detach-network --force (#21191)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-10 09:58:25 +08:00
Zexi Li
03bde9182f optimized(apigateway): use ssh for climc pod cloud shell (#21185) 2024-09-09 16:03:07 +08:00
屈轩
3af492417f fix(cloudid): cloud policy sync (#21173) 2024-09-06 11:48:57 +08:00
wanyaoqi
e4fc059588 fix(host-deployer): update host-deployer-docker base (#21177) 2024-09-06 11:25:46 +08:00
Zexi Li
4080665f58 fix(monitor): support or filter of query (#21171) 2024-09-05 20:10:32 +08:00
屈轩
63e2a97dfd fix(region): disk update disk type (#21160) 2024-09-04 10:44:26 +08:00
wanyaoqi
f0927f0aba fix(host): rbd save image use /opt/cloud temp dir (#21154) 2024-09-04 10:43:32 +08:00
Jian Qiu
5d69bdfbdf fix: telegraf config file format error (#21145)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-03 11:02:58 +08:00
屈轩
dc2cd4f111 fix(region): sync worker hashring (#21127) 2024-09-02 20:08:00 +08:00
Zexi Li
29054379a9 optimize(host): wrap updateOrCreateHost error (#21141) 2024-09-02 13:28:28 +08:00
wanyaoqi
07df2aac53 fix(region): allow guest create on cannot detect image props (#21138) 2024-09-02 10:18:35 +08:00
Jian Qiu
10ca788e09 fix: update vendor for dameng TEXT_EQUAL (#21135)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-01 20:19:11 +08:00
Jian Qiu
071c6e0cfe fix: migrate ipv6 routes from physical interface to bridge (#21132)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-09-01 20:16:48 +08:00
Zexi Li
930605f7a0 fix(monitor): delete default group by and mean aggregator (#21116) 2024-08-29 10:03:45 +08:00
Zexi Li
3e7f4c9983 fix(climc): host-ssh is not working (#21112) 2024-08-27 16:25:16 +08:00
Zexi Li
05330f18fc fix(monitor): skipCheckSeries when aggregator is sum (#21106) 2024-08-27 10:41:05 +08:00
屈轩
7ae0543dae fix(region): sync aliyun gtm and aws traffic policy address (#21103) 2024-08-26 20:55:18 +08:00
Zexi Li
c703061b7f fix(monitor): only show MEAN and SUM aggregators (#21099) 2024-08-26 17:39:57 +08:00
wanyaoqi
cb5cbc4075 fix(host): nbd worker count add options (#21095) 2024-08-26 17:28:57 +08:00
屈轩
ba1bbdb572 fix(region): set security group domain id (#21092) 2024-08-26 17:26:57 +08:00
Jian Qiu
a46c865826 fix: extend query with metadata field (#21084)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-08-23 11:30:31 +08:00
Zexi Li
2138f65f3a feat(monitor): result reducer for query result (#21076) 2024-08-22 15:43:52 +08:00
Zexi Li
b9cda0a032 optimze(baremetal): dhcp prefix hints (#21075) 2024-08-22 15:27:43 +08:00
屈轩
cb5b0651b9 fix(region): filter eips by associated (#21066) 2024-08-21 10:50:57 +08:00
Zexi Li
aee9c6db46 optimize(region,host): add details error message when adding net interface (#21062) 2024-08-20 18:38:58 +08:00
Jian Qiu
5b9ef62f5b fix(host): migrate slave addresses and routes from physical nic to bridge (#21043)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-08-19 10:19:25 +08:00
Jian Qiu
afac4573bb fix: climc command to public/private dns-zone (#21054)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-08-19 10:17:57 +08:00
屈轩
3c2013cd82 fix(cloudmon): 避免cloudmon任务堆积导致大量请求 (#21047) 2024-08-19 10:13:16 +08:00
wanyaoqi
6966494f41 fix(region): try recover image cache on guest migrate (#21027) 2024-08-16 10:29:49 +08:00
wanyaoqi
1dfd41697b Automated cherry pick of #21039: fix(region,host,host-deployer): deploy guest ssh port add lock (#21040)
* fix(host): check nodes count on alloc cpuset

* fix(host-deployer): get ssh port add lock

* feat(region): guest clone add prefer host
2024-08-16 09:56:37 +08:00
Jian Qiu
71f559cf9d fix: filter islated devices capability info by zone (#21034)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-08-15 09:37:36 +08:00
Jian Qiu
25f7839d56 fix: support keylike search (#21030)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-08-15 09:36:05 +08:00
屈轩
f483d04ce8 fix(region): sync kvm secgroup status (#21017) 2024-08-14 11:37:36 +08:00
Zexi Li
15ec011e36 fix(baremetal): ignore 0.0.0.0 ipmi address when probing (#21008) 2024-08-13 17:43:48 +08:00
屈轩
cda4ddc7c5 fix(region): vendor update (#20993) 2024-08-12 09:52:22 +08:00
屈轩
c7dfaea1aa fix(region): auto clean invalid cached images (#20815) 2024-08-09 09:42:04 +08:00
wanyaoqi
7fbf8b46b5 fix(region): validate guestdisk cache/io mode on upadte (#20984)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-08-09 09:41:01 +08:00
wanyaoqi
2da0872af3 fix(host): clean image cache check local reference (#20953) 2024-08-09 09:40:38 +08:00
屈轩
8c8ceb1dce fix(region): vendor update for lb backend sync (#20974) 2024-08-07 18:50:26 +08:00
屈轩
328f652ee8 fix(region): send notify when vpc or network created (#20928) 2024-08-07 11:54:58 +08:00
屈轩
8684590041 fix(region): show status info with list api (#20942) 2024-08-07 11:53:48 +08:00
wanyaoqi
9ffadeb978 fix(host-deployer): add cpu mem hotplug udev rules (#20962) 2024-08-06 09:07:14 +08:00
wanyaoqi
cf3cfda698 fix(host): too much qga ping logs (#20956) 2024-08-05 14:47:25 +08:00
wanyaoqi
0d1dc01cbd fix(region,scheduler): sub pending usage on select cpu numa pin (#20947)
- reset guest cpu numa pin before start guest
- sub pending usage on select cpu numa pin
- hypervisor pod record pending usage
- add core:threads pair allocate, use same core threads first

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-08-02 10:22:46 +08:00
wanyaoqi
fe31a4b35e fix(region): cpu numa pin guest sched start (#20938) 2024-07-31 21:36:15 +08:00
Zexi Li
684aa1a2c8 fix(monitor): no alert_details in nodata monitor_resource_alert (#20935) 2024-07-31 13:47:18 +08:00
wanyaoqi
0839c6964e feat(region,host,scheduler): scheduler support allocate cpu numa pin (#20931) 2024-07-30 19:10:32 +08:00
Zexi Li
7b30dcab08 feat(monitor): multiple alerts of resource (#20924) 2024-07-30 16:15:55 +08:00
屈轩
df76ac5217 fix(cloudmon): 避免产生大量操作日志 (#20919) 2024-07-30 14:41:54 +08:00
屈轩
6bb4e468c0 fix(region): vendor update (#20910) 2024-07-30 09:32:32 +08:00
Zexi Li
4f7c1a7082 fix(monitor): add pps_sent/recv metric for query (#20915) 2024-07-29 20:58:57 +08:00
Jian Qiu
13b451b465 fix: opsadmin deny host perform login-info (#20904)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-07-29 13:21:13 +08:00
屈轩
a96a57e920 fix(keystone): change user mobile field character set to utf8 (#20900) 2024-07-27 13:50:10 +08:00
Zexi Li
9cdbf61062 fix(mointor): multiple duplicated message (#20891) 2024-07-25 15:26:57 +08:00
wanyaoqi
401cc40655 feat(regin,host,host-deployer): qga deploy and fsdriver (#20863)
- host-deployer add deploy qga support
- host add qga partition fsdriver
- qga set network use fsdriver
- hostpinger sync qga status
2024-07-25 11:49:32 +08:00
屈轩
fda7529b3f fix(cloudid): cloudid resource sync worker (#20878) 2024-07-25 11:19:20 +08:00
Zexi Li
ebd7f5d5df feat(webconsole): add secret_level property inside query data (#20882) 2024-07-24 17:41:20 +08:00
屈轩
248a2ba7df fix(region): keypair id typo (#20873) 2024-07-24 14:35:32 +08:00
wanyaoqi
055c9ab3db Automated cherry pick of #20852: fix(region,host): slvm disk create use guest host lvm disk create from backup (#20854)
* fix(region): slvm disk create use guest host

* fix(host): lvm disk create from backup
2024-07-22 15:13:19 +08:00
Zexi Li
d624c2d763 feat(apigateway): report docker-compose-baremetal running environment (#20867) 2024-07-22 15:11:58 +08:00
Zexi Li
72e665fb0b feat(monitor): add inodes_used_percent metric (#20849) 2024-07-20 11:58:14 +08:00
屈轩
b4cfdd8246 fix(region): host nic info (#20860) 2024-07-20 11:55:59 +08:00
Zexi Li
46b7428b1d feat(monitor): update influxql-to-metricsql@v0.0.7 to support percentile aggregator (#20835) 2024-07-17 22:59:44 +08:00
屈轩
47a7979868 fix(region): add storage name for snapshot (#20828) 2024-07-17 22:55:35 +08:00
屈轩
28dede02cb fix(region): support baremetal server as lb backend (#20838) 2024-07-17 22:54:02 +08:00
屈轩
8632769265 fix(region): vendor update for qcloud lb backend sync (#20823) 2024-07-17 14:17:20 +08:00
屈轩
8ca9d0c289 fix(cloudid): distinct field for cloudid resources (#20819) 2024-07-17 10:12:51 +08:00
Jian Qiu
dd89bf8558 fix: always add static routes for metadata server (#20807)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-07-17 10:06:55 +08:00
屈轩
d23148559f fix(region): check user credential length when exec task (#20792) 2024-07-16 11:20:02 +08:00
Zexi Li
601f3e5062 feat(host): add interface meta tags of netio metrics (#20781) 2024-07-12 10:19:13 +08:00
Zexi Li
283122bcb1 feat(region,baremetal): validate ipmi info (#20788) 2024-07-12 10:17:46 +08:00
屈轩
c7dc8917d8 fix(notify): avoid empty email addr (#20798) 2024-07-12 10:10:30 +08:00
屈轩
801bf239c1 fix(region): vendor update (#20801) 2024-07-12 10:09:59 +08:00
Zexi Li
416141992e fix(baremetal): some tasks don't implement IServerBaseDeployTask interface (#20785) 2024-07-10 16:15:36 +08:00
屈轩
efea50cf0b fix(region): optimized host-list speed (#20778) 2024-07-10 16:14:16 +08:00
屈轩
695f6c0e31 fix(region): optimized guest list speed (#20759) 2024-07-10 16:12:26 +08:00
wanyaoqi
65044937e0 fix(host): disk reset with encryption (#20765) 2024-07-10 16:11:10 +08:00
屈轩
f6a1ebd244 fix(region): show pretty cdrom info for server (#20776) 2024-07-10 16:09:50 +08:00
Zexi Li
986b7d2360 fix(scheduler,baremetal): match RAID and PCIE storages in range (#20769)
The index of PCIE storages is not reindex when range is provided.
2024-07-09 11:12:14 +08:00
屈轩
b5461d344e fix(region): 避免非OneCloud区域capability依然返回OneCloud相关字段 (#20733) 2024-07-09 11:11:07 +08:00
屈轩
da2e6faa4f fix(region): enable create cloudpods vm with iso image (#20746) 2024-07-08 21:31:53 +08:00
屈轩
6e95e21e98 fix(notify): avoid panic when mobile not set (#20744) 2024-07-08 21:31:11 +08:00
Jian Qiu
70eea30d9e fix: turn on ethtool gso by default (#20753)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-07-08 21:30:01 +08:00
Jian Qiu
6c4f4cb53f fix: server update nic sub ips (#20757)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-07-08 17:25:23 +08:00
屈轩
0a3f6a10ad fix(scheduler): 修复cloudpods宿主机网络调度问题 (#20751) 2024-07-08 10:52:02 +08:00
屈轩
35ef9f44df fix(climc): auto enable storage when switch s3 on (#20727) 2024-07-07 09:46:43 +08:00
Jian Qiu
414b4e5c32 fix: fail to perform host remove netif (#20739)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-07-07 09:02:52 +08:00
屈轩
d2510bcacd fix(region): 补充部分翻译 (#20748) 2024-07-07 09:01:32 +08:00
屈轩
906c86cecf fix(region): vendor update for support gcp global lb sync (#20712) 2024-07-05 16:23:33 +08:00
wanyaoqi
7a0b878cac fix(region,host): lvm snapshot reset and backup (#20720)
- fix lvm disk reset request hosts wrong, should reset on guest hosts
- add lvm disk snapshot failed handle
- support lvm disk backup
- lvm disk snapshot add encrypt support
2024-07-05 13:50:29 +08:00
屈轩
2791eb0fd0 fix(region): gcp global eip and lb (#20736) 2024-07-05 13:44:58 +08:00
屈轩
997204711f fix(region): avoid delete lb failed (#20709) 2024-07-05 12:38:05 +08:00
屈轩
a3ebd7ca97 fix(region): 简化清理未使用的安全组 (#20723) 2024-07-05 11:03:12 +08:00
Jian Qiu
b0e979ada6 fix: normalize sftp errors (#20705)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-07-03 21:11:24 +08:00
wanyaoqi
a6f7647cdd fix(scheduler): optimize get guests by hosts ids (#20701) 2024-07-02 00:17:02 +08:00
wanyaoqi
d10428aaf3 fix(region,host): migrate converted servers (#20698) 2024-07-02 00:15:45 +08:00
wanyaoqi
0bf8d46a7b feat(host): support run guest with qemu 9.0.1 (#20692)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-07-02 00:15:07 +08:00
屈轩
a6834fe8ae fix(region): security group rule create (#20695) 2024-07-01 11:31:38 +08:00
Jian Qiu
e4fff38c43 feature: support baremetal profile (#20688)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-30 22:23:01 +08:00
屈轩
00b5de7592 fix(region): support use cached iso image for create cloudpods vm (#20686) 2024-06-30 22:22:16 +08:00
屈轩
12c6181721 fix(region): support eip search (#20683) 2024-06-28 15:58:44 +08:00
屈轩
b4d1a1beeb fix(region): cloudpods instance capability (#20681) 2024-06-28 15:05:19 +08:00
屈轩
efe7032213 fix(log): add rate log type (#20678) 2024-06-28 14:49:28 +08:00
屈轩
77370b4db6 fix(keystone): remove useless log (#20676) 2024-06-28 14:39:12 +08:00
wanyaoqi
40139b4ab8 fix(region): login account allow startwith capital letter (#20670) 2024-06-27 20:50:20 +08:00
wanyaoqi
c5f0dcedb5 fix(region): convert to kvm overwirte networks (#20667) 2024-06-27 20:39:11 +08:00
屈轩
836a8d66e2 fix(region): vendor update for qcloud tencentos server (#20663) 2024-06-27 15:39:06 +08:00
wanyaoqi
e784f3fdd9 feat(region): add batch convert precheck (#20659)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-06-26 21:20:16 +08:00
wanyaoqi
0bac7ce2ed fix(host): delete snapshot on guest deleted (#20640) 2024-06-26 21:18:21 +08:00
Zexi Li
10b92a21ec fix(climc,webconsole): use OS_AUTH_TOKEN for cloud shell running inside compose environment (#20649) 2024-06-26 12:12:13 +08:00
屈轩
9992dc8c45 fix(region): waf regexset fetch error (#20646) 2024-06-26 11:18:34 +08:00
Jian Qiu
e57717fd65 fix: vmware probe host networks (#20626)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-26 10:59:53 +08:00
屈轩
3e66dd7935 fix(region): vendor update for qcloud nat sync (#20638) 2024-06-25 15:56:42 +08:00
屈轩
a02ae55bd8 fix(region): esxi onecloud driver (#20636) 2024-06-25 15:31:58 +08:00
Zexi Li
1283f5a21a optimize(glance): wrap error of saving image (#20633) 2024-06-25 14:21:28 +08:00
wanyaoqi
825a6c688c fix(region): scheduler forecast before convert to kvm (#20609) 2024-06-25 11:02:42 +08:00
wanyaoqi
e1ac3dab00 fix(glance): sync service options after vmware detected (#20606) 2024-06-25 10:58:52 +08:00
wanyaoqi
66df0b471c Automated cherry pick of #20595: Automated cherry pick of #20594: Fix/deploy reset password support loginaccount (#20596)
* fix(host): lvm resize add encrypt support

* fix(region): deploy reset password add loginaccount
2024-06-25 10:57:09 +08:00
屈轩
06091448ee fix(region): vendor update for qcloud nat capability (#20630) 2024-06-25 10:53:40 +08:00
屈轩
7511a61b8f fix(region): natgateway api upgrade (#20623) 2024-06-24 14:59:45 +08:00
Zexi Li
5eed2dfa8b fix(monitor): add difference tags for each series (#20619) 2024-06-22 22:06:01 +08:00
Zexi Li
c225ba2842 fix(apigateway): compose environment without k8s service (#20616) 2024-06-21 16:38:18 +08:00
Zexi Li
5151221d67 fix(logger): add rejected action i18n translation (#20602) 2024-06-20 15:01:23 +08:00
屈轩
b8cbee8ad1 fix(region): auto rename when change resource owner with same name (#20592) 2024-06-20 14:04:49 +08:00
Jian Qiu
4adf426392 fix: clone dashboard parameters (#20588)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-20 07:54:10 +08:00
wanyaoqi
ca0a61986b fix(region): allow kvm vmware reuse network address (#20585)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-06-20 06:28:06 +08:00
Zexi Li
e9d997d4c9 feat(monitor): add reducer of AlertRecordRule (#20582) 2024-06-19 19:20:11 +08:00
Zexi Li
50db770fd1 feat(log): add i18n consts for itsm service (#20575) 2024-06-19 15:35:07 +08:00
Jian Qiu
9d33639255 fix: add predefined log policy (#20570)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-19 09:32:44 +08:00
Zexi Li
3a567dd4de fix(host-deployer): ignore fatal exit when host.conf not exists (#20560) 2024-06-18 20:27:19 +08:00
屈轩
d74a15a982 fix(region): account region id optional (#20567) 2024-06-18 20:20:12 +08:00
屈轩
418961eb5b fix(region): pve driver (#20569) 2024-06-18 19:58:31 +08:00
屈轩
69d8111d16 fix(region): cloudpods hypervisor (#20564) 2024-06-18 15:38:39 +08:00
屈轩
9f7e71502b fix(climc): add service choices for worker-list (#20557) 2024-06-17 20:44:41 +08:00
屈轩
915ebe03f9 fix(webconsole): sangfor vnc (#20563) 2024-06-17 20:44:04 +08:00
屈轩
a2de0be8f2 fix(region): qcloud permission (#20554) 2024-06-17 14:25:01 +08:00
屈轩
2cde41c446 fix(region): sangfor vm status (#20551) 2024-06-17 11:18:53 +08:00
Jian Qiu
04d4e084b1 fix: cleanup compute options 20240615 (#20548)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-17 00:42:30 +08:00
wanyaoqi
bae7791792 fix(region): convert to esxi fill network params (#20493)
Deploy converted guest after guest created
2024-06-17 00:41:34 +08:00
wanyaoqi
aa9c91d6e5 fix(region,host): isolated device batch sync (#20538) 2024-06-16 23:05:58 +08:00
wanyaoqi
13a100fefe fix(region): insert iso sync guest status (#20540) 2024-06-16 23:01:35 +08:00
Jian Qiu
0b7c9359e3 fix: enable image cache cleanup by default (#20531)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-14 18:13:42 +08:00
屈轩
11a5be8cd5 fix(region): support sangfor (#20525) 2024-06-13 20:43:58 +08:00
gouqi11
b13d6624f5 fix(notify): add mobile verify (#20520)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-06-13 18:59:41 +08:00
gouqi11
f74bff88bb fix(notify): fix mobile validate (#20510)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-06-11 14:17:58 +08:00
屈轩
0359bb2ac2 fix(region): reset password for cloudpods baremetal (#20486) 2024-06-07 15:06:31 +08:00
wanyaoqi
a307cc9196 fix(host): parse qga command and args (#20506) 2024-06-07 15:03:40 +08:00
wanyaoqi
2a7bfec231 fix(host-deployer): extend volume before extend filesystem (#20501) 2024-06-06 13:37:29 +08:00
Jian Qiu
c62dee61f7 fix: disk backup details missing components (#20496)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-06 13:33:58 +08:00
Zexi Li
01e3ad9c8c fix(region): container is not started when pod's flavor changed (#20489) 2024-06-06 10:03:51 +08:00
屈轩
99c8eadf63 fix(region): cloudpods baremetal rebuild root (#20484) 2024-06-05 11:10:05 +08:00
Zexi Li
05d3d72ec1 feat(region,baremetal,climc): support baremetal root disk matcher (#20479) 2024-06-05 00:17:16 +08:00
屈轩
d0bfc648ca fix(region): update cachedimage limit (#20472) 2024-06-04 20:41:46 +08:00
屈轩
58d6f00780 fix(baremetal-agent): avoid dead lock (#20476) 2024-06-04 18:04:43 +08:00
屈轩
f69f776622 fix(keystone): show user group info for user (#20468) 2024-06-04 14:58:46 +08:00
屈轩
2b95099cc2 fix(region): sync cloudpods host storage driver (#20466) 2024-06-04 14:46:34 +08:00
Jian Qiu
9d51fa258b fix: disable webconsole watermark by default (#20461)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-04 00:48:41 +08:00
屈轩
c7fa14e218 fix(keystone): avoid sync remove disabled ldap user (#20437) 2024-06-04 00:47:58 +08:00
wanyaoqi
f82507c1f6 fix(host-deployer): deploy telegraf systemd service type simple (#20457) 2024-06-03 19:51:09 +08:00
wanyaoqi
5a403a3b13 fix(host-deployer): split guest dns by comma (#20449) 2024-06-03 19:14:42 +08:00
屈轩
0b24305ccc fix(keystone): enable user (#20454) 2024-06-03 18:07:01 +08:00
屈轩
dc421032d6 fix(region): sync waf ssl and cc list (#20446) 2024-06-03 16:01:27 +08:00
Jian Qiu
3fdb3307ab fix: missing goarch env (#20442)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-03 11:33:44 +08:00
Zexi Li
d1c28f0783 feat(monitor): remove precision of float when using max or min function (#20430) 2024-06-01 20:40:53 +08:00
屈轩
8aec56d79f fix(keystone): avoid panic (#20434) 2024-06-01 17:47:42 +08:00
wanyaoqi
ab1ec19889 Automated cherry pick of #20423: misc: disable cgo by default (#20424)
* misc: disable cgo by default

* fix(host): container isolated device skip get numa node
2024-05-31 19:00:46 +08:00
wanyaoqi
f65c73e867 fix(region): storagecacheresource panic on FetchCustomizeColumns (#20426) 2024-05-31 17:53:42 +08:00
gouqi11
e5d872c736 fix(notify): message add medium tag (#20420)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-05-31 10:39:16 +08:00
Jian Qiu
90af685f30 fix: haproxy check parammeters with default value (#20416)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-31 10:20:04 +08:00
屈轩
316d602e73 fix(region): oracle storage should be emulated (#20413) 2024-05-30 20:40:17 +08:00
Jian Qiu
ed4450fe74 fix: glance import xz compressed images (#20408)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-30 19:17:40 +08:00
Zexi Li
d0bf468c7f feat(climc): feature config (#20395) 2024-05-30 15:43:02 +08:00
Jian Qiu
e853102e86 fix: mv filterclause from pkg to onecloud (#20402)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-30 15:42:20 +08:00
wanyaoqi
dc0c8d8dbd fix(region,host): slvm default deactivate on hosts (#20382) 2024-05-30 15:03:59 +08:00
gouqi11
616f31bda6 fix(notify): change receiver owner (#20398)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-05-30 11:47:04 +08:00
屈轩
ffadbecc1b fix(region): vendor update for web app ip addr sync (#20392) 2024-05-29 18:36:50 +08:00
屈轩
63e764a150 fix(region): vendor update (#20389) 2024-05-29 17:56:06 +08:00
Zexi Li
0900818b36 fix(host): wrap disk probed error (#20385) 2024-05-29 17:44:02 +08:00
Zexi Li
eb102ad7e4 fix(monitor): detach alert (#20375) 2024-05-28 10:00:03 +08:00
Zexi Li
903e5f5203 fix(monitor): multiple monitor resource alert (#20366) 2024-05-27 15:44:41 +08:00
屈轩
489cb9eb51 fix(region): vendor update for sqlchemy click decimal field (#20362) 2024-05-27 10:04:06 +08:00
Jian Qiu
9662fafc22 fix: allow update network server_type (#20354)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-24 20:21:31 +08:00
屈轩
cfd676fb2a fix(region): distinct fields (#20357) 2024-05-24 20:18:53 +08:00
Jian Qiu
5994a41aaf fix: secgroup init rule CIDR should be empty for both ipv4 and ipv6 (#20347)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-24 10:48:26 +08:00
屈轩
fdc6d25b11 fix(region): account read only (#20344) 2024-05-24 10:00:45 +08:00
屈轩
ffcdd48943 fix(region): vendor update for waf info sync (#20339) 2024-05-22 20:37:45 +08:00
屈轩
88db3152d1 fix(region): support organization (#20337) 2024-05-22 19:12:20 +08:00
屈轩
b4cd3d758c fix(region): currency rate exchange (#20334) 2024-05-21 19:22:00 +08:00
屈轩
f36286f01f fix(region): sync public ip convert eip (#20326) 2024-05-21 15:36:36 +08:00
屈轩
3feac61a8c fix(region): vendor update for aliyun waf (#20330) 2024-05-21 15:19:20 +08:00
gouqi11
7c9db8b74a fix(region): parent task id is not primary key (#20261) (#20324)
Co-authored-by: 屈轩 <qu_xuan@icloud.com>
2024-05-21 15:14:26 +08:00
屈轩
c342e2ed0e fix(region): add currency rate exchange (#20320) 2024-05-20 14:51:27 +08:00
屈轩
a7284ae91e fix(scheduler): cloudprovider predicate (#20313) 2024-05-20 11:52:51 +08:00
屈轩
a1e0f31b2c fix(region): vendor update for qcloud waf (#20309) 2024-05-17 15:36:58 +08:00
屈轩
cb286278ee fix(region): webapp custom domains (#20303) 2024-05-16 16:16:15 +08:00
屈轩
fb10c1d110 fix(region): query distinct fields (#20299) 2024-05-16 15:24:29 +08:00
屈轩
19c74d3f67 fix(region): set cloud provider disconnect when sync region error (#20290) 2024-05-16 10:01:55 +08:00
Jian Qiu
ceb676f772 fix: hostbackupstorage climc subcmds (#20285)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-15 18:03:57 +08:00
屈轩
1b54853483 fix(region): remove waf cache (#20282) 2024-05-15 17:35:10 +08:00
wanyaoqi
cc1033fa86 fix(region,host): slvm misc fix (#20271) 2024-05-15 10:45:52 +08:00
屈轩
ac393698fa fix(region): vendor update for web app (#20268) 2024-05-14 20:56:58 +08:00
屈轩
449e8f20d8 fix(region): azure web app (#20265) 2024-05-14 19:17:05 +08:00
屈轩
7421f51264 fix(region): data storage type (#20260) 2024-05-14 14:50:07 +08:00
wanyaoqi
9a6efbabd8 fix(region): return origin error on fetch joint item failed (#20254) 2024-05-13 17:51:29 +08:00
Jian Qiu
fcc042ebc7 fix: ceph stats backward compatible with ceph 12.x (#20220)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-10 14:55:00 +08:00
Jian Qiu
d98a9bf271 fix: storagecachedimages details speedup (#20233)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-10 14:54:18 +08:00
Jian Qiu
c6189143b0 fix: cachedimage sync tenant_id (#20236)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-10 14:52:34 +08:00
屈轩
6be9007bb6 fix(region): vm create with default provider (#20229) 2024-05-09 14:47:12 +08:00
屈轩
cea38096d8 fix(region): zstack shared block storage (#20225) 2024-05-09 14:25:47 +08:00
Jian Qiu
209019e3f4 feature: automatically clean obsolete images from host iamge cache (#20217)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-09 12:11:26 +08:00
gouqi11
44eb35e30e fix(region): add modelarts capability (#20215)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-05-08 19:59:03 +08:00
屈轩
d9dfd1b132 fix(region): vendor update for azure lb sync (#20212) 2024-05-08 19:17:55 +08:00
Zexi Li
7e5e95c507 feat(host): skip calculating checksum for cached image when format is TGZ (#20199) 2024-05-08 12:21:29 +08:00
屈轩
ba1291be82 fix(region): cloudpods baremetal (#20205) 2024-05-07 18:18:47 +08:00
屈轩
2039692352 fix(climc): oraclecloud feature (#20202) 2024-05-06 19:17:51 +08:00
Jian Qiu
bf5bf13f1e fix: set disk status when requesting disk reset (#20193)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-04 09:08:30 +08:00
屈轩
141d7a5d8b fix(region): add enable auto sync resource field (#20188) 2024-04-30 19:28:07 +08:00
屈轩
d88a256396 fix(region): remove storagecachedimage (#20185) 2024-04-30 15:24:21 +08:00
Jian Qiu
d3e88ca93e fix(hostman): change userdata.sh mode (#20182)
Co-authored-by: liaoxiaomeng <liaoxiaomeng@hotmail.com>
2024-04-30 12:43:56 +08:00
wanyaoqi
b9442fc9c3 fix(host): ignore disk not found on disk delete handler (#20177) 2024-04-30 07:14:31 +08:00
Zexi Li
e3096bf5fc fix(monitor): multiple metrics query of alert (#20168) 2024-04-28 19:05:40 +08:00
屈轩
705efd5986 fix(region): update public cloud provider (#20165) 2024-04-28 18:28:06 +08:00
屈轩
357ef9b91a fix(region): esxi upload iso image (#20163) 2024-04-28 17:20:00 +08:00
Zexi Li
7aca6fb14e feat(monitor): support multiple metrics alert (#20158) 2024-04-28 11:35:56 +08:00
wanyaoqi
1883fb9fc6 Automated cherry pick of #20152: Fix/host misc fix 0425 (#20154)
* fix(host): dirty guest dir move to recycle dir

* fix(host-deployer): fix deployer guest ssh port range, use localhost

* fix(host): try bind vfio dirver use addr
2024-04-28 11:18:55 +08:00
Zexi Li
7643f7f056 fix(monitor): alert panic (#20148) 2024-04-26 12:19:07 +08:00
Zexi Li
57a060fa30 fix(monitor): query monitor_resource_alert by monitor_resource_id is not working (#20143) 2024-04-25 19:36:38 +08:00
Zexi Li
cccc4aea88 fix(monitor): filter alerts by monitor_resource_id (#20142) 2024-04-25 19:36:26 +08:00
屈轩
bf5885c2d8 fix(region): allow update hostname (#20126) 2024-04-24 18:40:48 +08:00
屈轩
6c670bed68 fix(region): sync hostname (#20123) 2024-04-24 17:33:34 +08:00
屈轩
f37c58ed24 fix(climc): enable build windows climc (#20121) 2024-04-24 15:24:26 +08:00
屈轩
fadf610d9b fix(mcclient): read me (#20116) 2024-04-24 12:21:59 +08:00
屈轩
e5ab58e510 fix: revert default policy (#20112) 2024-04-23 19:17:22 +08:00
屈轩
1b1546b34b fix(region): sync external project by manager (#20110) 2024-04-23 17:10:50 +08:00
屈轩
4001e57e39 fix(region):auto create project (#20103) 2024-04-22 19:26:53 +08:00
Jian Qiu
42137e0c98 fix: wrong private static route format (#20091)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-22 14:52:42 +08:00
Jian Qiu
e4f2b5b884 fix: guest stop revisit (#20092)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-22 14:51:26 +08:00
屈轩
e80b3fccc9 fix(region): show more error info when sync nic error (#20098) 2024-04-22 14:37:29 +08:00
屈轩
a3372a8acb fix(region): show ip out of range details error (#20082) 2024-04-19 18:30:20 +08:00
wanyaoqi
b4a2bef741 fix(regin,host): delete snapshots after stream complete (#20087) 2024-04-19 18:28:01 +08:00
Jian Qiu
202b0182fa fix: backup storage access containd by hosts (#20051)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-19 07:20:49 +08:00
wanyaoqi
efe9705c9d fix(host): resize lvm disk (#20047) 2024-04-19 07:19:51 +08:00
屈轩
4fabb7f1f8 fix(region): account disconnect (#20077) 2024-04-18 20:23:51 +08:00
屈轩
067684986c fix(cloudid): add volcengine sp metadata (#20074) 2024-04-18 18:02:46 +08:00
屈轩
71e9e0ef36 fix(region): sync bucket status (#20070) 2024-04-18 15:49:55 +08:00
屈轩
5fa772f6d0 fix(region): avoid skip zone purge (#20065) 2024-04-18 15:39:21 +08:00
屈轩
b91a7e7027 fix(region): vendor update for code generate (#20058) 2024-04-18 12:43:17 +08:00
屈轩
084c4fdef9 fix(cloudmon): oracle metric collect (#20055) 2024-04-18 11:32:58 +08:00
屈轩
fea5c0d4a7 fix(region): vendor update for oracle monitor (#20043) 2024-04-17 18:30:45 +08:00
屈轩
26e2372212 fix(cloudmon): vendor update for support oracle metric (#20038) 2024-04-17 15:25:53 +08:00
Zexi Li
9c24611d46 Merge pull request #20014 from wanyaoqi/automated-cherry-pick-of-#20013-upstream-release-3.12
Automated cherry pick of #20013: fix(region,host): custom device model add auto detect option
2024-04-17 10:27:45 +08:00
Zexi Li
a0a91ac21d Merge pull request #20004 from wanyaoqi/automated-cherry-pick-of-#19994-upstream-release-3.12
Automated cherry pick of #19994: Automated cherry pick of #19993: fix(host): sriov bond
2024-04-17 10:26:41 +08:00
屈轩
aad55012f7 fix(region): remove dirty code (#20033) 2024-04-17 10:11:24 +08:00
Zexi Li
d0bf44c0a0 Merge pull request #20002 from wanyaoqi/automated-cherry-pick-of-#19999-upstream-release-3.12
Automated cherry pick of #19999: feat(host): NewPciDevice add executor
2024-04-16 18:25:14 +08:00
Zexi Li
306d66d074 Merge pull request #20005 from wanyaoqi/automated-cherry-pick-of-#19991-upstream-release-3.12
Automated cherry pick of #19991: feat(region,host): add disk migrate support
2024-04-16 18:22:17 +08:00
Zexi Li
e8810a90d8 Merge pull request #19997 from swordqiu/automated-cherry-pick-of-#19996-upstream-release-3.12
Automated cherry pick of #19996: fix: disk post create not inherit upper class
2024-04-16 18:20:27 +08:00
Zexi Li
4d0f161fc4 Merge pull request #20026 from wanyaoqi/automated-cherry-pick-of-#20025-upstream-release-3.12
Automated cherry pick of #20025: fix(host): fix gpu device vendor check strategy
2024-04-16 18:18:08 +08:00
屈轩
b61dbae008 fix(region): support delete huawei prepaid resource (#20030) 2024-04-16 18:08:11 +08:00
屈轩
6db39b85e1 fix(region): avoid skip region purge (#20021) 2024-04-16 16:44:05 +08:00
屈轩
1faccb0262 fix(region): skip not implement error (#20018) 2024-04-16 16:43:24 +08:00
Zexi Li
e2e8fc02b6 Merge pull request #20007 from swordqiu/automated-cherry-pick-of-#20006-upstream-release-3.12
Automated cherry pick of #20006: fix: fail to create encrypted nfs disk
2024-04-16 16:00:21 +08:00
Zexi Li
a9c93dcc15 Merge pull request #19988 from swordqiu/automated-cherry-pick-of-#19987-upstream-release-3.12
Automated cherry pick of #19987: fix: userdata not executable due to umask
2024-04-16 15:57:15 +08:00
wanyaoqi
c44f33ec6c fix(host): fix gpu device vendor check strategy
Check gpu device vendor id on class code is DISPLAY.

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-04-16 15:56:41 +08:00
wanyaoqi
62ddb14873 fix(region,host): custom device model add auto detect option
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-04-16 12:32:45 +08:00
Qiu Jian
62ea988107 fix: fail to create encrypted nfs disk 2024-04-16 00:18:14 +08:00
wanyaoqi
787576c9d0 feat(region,host): add disk migrate support 2024-04-15 21:56:09 +08:00
wanyaoqi
18ae38cb23 fix(host): init from existing guest load cpuset 2024-04-15 21:51:37 +08:00
wanyaoqi
14da90405a fix(host): detect sriov bond nics 2024-04-15 21:51:37 +08:00
wanyaoqi
bec94ba87e feat(host): NewPciDevice add executor 2024-04-15 21:48:56 +08:00
Qiu Jian
aec2030e73 fix: disk post create not inherit upper class 2024-04-15 21:46:46 +08:00
Qiu Jian
060140a64d fix: userdata not executable due to umask 2024-04-15 17:19:16 +08:00
屈轩
24d57b02f8 fix(region): simplfy cached-image-list filter (#19985) 2024-04-15 15:50:13 +08:00
屈轩
9b17294fc0 fix(region): allow not idle account sync (#19981) 2024-04-15 14:10:35 +08:00
Jian Qiu
2de8d92c28 fix: bond interface missing default gateway (#19953)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-15 10:47:23 +08:00
屈轩
5d32cc8d28 fix(image): set image upload download timeout 4 hour (#19977) 2024-04-15 10:13:54 +08:00
屈轩
5fb4a3bc5e fix(region): sync ksyun tag (#19973) 2024-04-14 13:02:07 +08:00
屈轩
d51c264694 fix(region): vendor update for vpc not found error (#19969) 2024-04-12 20:52:30 +08:00
屈轩
61dae38bfb fix(region): vendor update 0412 (#19962) 2024-04-12 18:26:13 +08:00
gouqi11
0bbf9a9374 feat(notify): support cloudphone (#19960)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-04-12 15:16:27 +08:00
屈轩
ee44f7ea92 fix(region): support ksyun tag sync (#19956) 2024-04-12 12:05:26 +08:00
Jian Qiu
396aa79087 fix: netplan empty bond address (#19941)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-11 18:11:09 +08:00
屈轩
72a32e059e fix(region): vendor update (#19947) 2024-04-11 15:06:50 +08:00
屈轩
25bde052dc fix(region): avoid purge zone (#19937) 2024-04-11 13:57:56 +08:00
Zexi Li
2f32a749f2 Merge pull request #19933 from zexi/automated-cherry-pick-of-#19932-upstream-release-3.12
Automated cherry pick of #19932: feat(region,climc): support disk-rebuild
2024-04-11 12:08:54 +08:00
Zexi Li
b182b1dd08 Merge pull request #19920 from swordqiu/automated-cherry-pick-of-#19898-upstream-release-3.12
Automated cherry pick of #19898: fix: host nic index should be unique
2024-04-11 11:37:57 +08:00
Zexi Li
e6589cea31 Merge pull request #19930 from swordqiu/automated-cherry-pick-of-#19928-upstream-release-3.12
Automated cherry pick of #19928: fix: disable disk serial for esxi vm on release/3.10
2024-04-11 11:35:17 +08:00
Zexi Li
236ab429f6 feat(region,climc): support disk-rebuild 2024-04-11 11:16:44 +08:00
Qiu Jian
fded8ab79f fix: disable disk serial for esxi vm on release/3.10 2024-04-11 01:18:59 +08:00
屈轩
1ba4b69fdc fix(region): avoid purge regions (#19923) 2024-04-10 17:06:11 +08:00
Qiu Jian
a6881c2047 fix: host nic index should be unique 2024-04-10 01:33:57 +08:00
gouqi11
07a8a98e6f update vendor (#19916)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-04-09 19:47:30 +08:00
屈轩
01886ae732 fix(region): clean external cachedimage (#19911) 2024-04-09 17:26:12 +08:00
gouqi11
7e864dcb56 update vendor:ksyun ecs (#19904)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-04-09 11:51:48 +08:00
屈轩
6b201dcc26 fix(region): show local task stack info (#19901) 2024-04-09 11:50:59 +08:00
屈轩
4b9b468f0e fix(monitor): remove useless code (#19896) 2024-04-08 11:54:05 +08:00
2805 changed files with 313072 additions and 102833 deletions

View File

@@ -7,7 +7,7 @@ jobs:
requires:
- check
docker:
- image: yunion/centos-build:go-1.18.3-0
- image: yunion/centos-build:go-1.21.10-0
environment:
ONECLOUD_CI_BUILD: "1"

View File

@@ -13,7 +13,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Install check tools
shell: bash
@@ -32,7 +32,7 @@ jobs:
export GO111MODULE=on
make -j3 check
make test
targets="$(find cmd -mindepth 1 -maxdepth 1 -type d | grep -v cmd/host-image)"
targets="$(find cmd -mindepth 1 -maxdepth 1 -type d | grep -v cmd/host-image | grep -v torrent)"
echo $targets | tr ' ' '\n'
make $targets
ls -lh _output/bin

View File

@@ -22,7 +22,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -20,7 +20,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -21,7 +21,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -19,7 +19,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -19,7 +19,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -24,7 +24,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -20,7 +20,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -23,7 +23,7 @@ jobs:
- uses: actions/setup-go@v4
with:
go-version: '1.18'
go-version: '1.21'
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

View File

@@ -81,7 +81,7 @@ gencopyright:
@bash scripts/gencopyright.sh pkg cmd
test:
@go test $(GO_BUILD_FLAGS) $(shell go list ./... | egrep -v 'host-image|hostimage')
@go test $(GO_BUILD_FLAGS) $(shell go list ./... | egrep -v 'host-image|hostimage|torrent')
vet:
go vet ./...
@@ -89,11 +89,14 @@ vet:
# cmd/esxi-agent: prepare_dir
# CGO_ENABLED=0 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
cmd/fetcherfs: prepare_dir
CGO_ENABLED=0 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
cmd/host: prepare_dir
CGO_ENABLED=1 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
cmd/host-image: prepare_dir
CGO_ENABLED=1 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
cmd/%: prepare_dir
$(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
CGO_ENABLED=0 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
rpm/%: cmd/%
$(BUILD_SCRIPT) $*
@@ -282,7 +285,7 @@ dep:
@echo "$$depDeprecated"
@$(MAKE) mod
RELEASE_BRANCH:=master
RELEASE_BRANCH:=release/3.12
GOPROXY ?= direct
mod:

View File

@@ -8,8 +8,8 @@ endif
ModBaseName:=$(notdir $(ModName))
DockerImageRegistry?=registry.cn-beijing.aliyuncs.com
DockerImageAlpineBuild?=$(DockerImageRegistry)/yunionio/alpine-build:3.16.0-go-1.18.2-0
DockerImageCentOSBuild?=$(DockerImageRegistry)/yunionio/centos-build:go-1.18.3-0
DockerImageAlpineBuild?=$(DockerImageRegistry)/yunionio/alpine-build:3.19.0-go-1.21.10-0
DockerImageCentOSBuild?=$(DockerImageRegistry)/yunionio/centos-build:go-1.21.10-0
EnvIf=$(if $($(1)),$(1)=$($(1)))

View File

@@ -6,6 +6,14 @@ fi
test -f /etc/yunion/rcadmin && source /etc/yunion/rcadmin
if [ -n "$OS_AUTH_TOKEN" ]; then
test -n "$OS_USERNAME" && unset OS_USERNAME
test -n "$OS_PASSWORD" && unset OS_PASSWORD
test -n "$OS_DOMAIN_NAME" && unset OS_DOMAIN_NAME
test -n "$OS_ACCESS_KEY" && unset OS_ACCESS_KEY
test -n "$OS_SECRET_KEY" && unset OS_SECRET_KEY
fi
source <(climc --completion bash)
source <(kubectl completion bash)

View File

@@ -0,0 +1,35 @@
<?xml version="1.0"?>
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://www.volcengine.com/">
<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" WantAssertionsSigned="true">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIIDJjCCAg6gAwIBAgIUF3lH8/cdlQeyPBqt066RFnt3cI4wDQYJKoZIhvcNAQELBQAwJTEjMCEGA1UEAxMadXJuOnZvbGNlbmdpbmU6d2Vic2VydmljZXMwHhcNMjMwODA4MDIzNzI4WhcNMzMwODIxMTYwMDAwWjAlMSMwIQYDVQQDExp1cm46dm9sY2VuZ2luZTp3ZWJzZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPZ+nhODpFTe+A8PbuZYA5XDQ04WckV1A5U90tKaaUX5uKLUYfDtFA1TwMO/qG87LU/0Pxs4FhgZJkUOeBHkyYzzXZQvtfsJ9frcKkcTjX/WF4XJyitXCULSjhcclMS3gOqeI/Mo3P90KutfhNli/mAHQJaRsuPFG4ZwBusbUo8i5sqBqt/Sg8JapH7DjEU2mN1165o59gavPGSByPeEuu28EkivVFcI7Jox5ztwgMrOYY+pYP9GeSurzpyLq3CfvvahTsAJjuHDHTTnYNcq/I3VOap/y4cOU6vgxcQvBmgb+CBvGldjn0em3BIn5meQwuB6jfQ7kqBaO1PRD1nhDTMCAwEAAaNOMEwwSgYIKwYBBQUHAQEEPjA8MDoGCCsGAQUFBzABhi5odHRwOi8vbmV4dXMtcHJvZHVjdGlvbi5ieXRlZGFuY2UubmV0L3BjYS9vY3NwMA0GCSqGSIb3DQEBCwUAA4IBAQBxySDr9TPJxRN+otrFDaV8HSeFKUUSO3+r8bEVAXmS+xUsdUOZbaf2r/g+eKrW58dpn+iBWTAAKug9Jwe5KVGqB7G5r2r6k/eI5dvv5r/Fr5T7NppRCXKQTQiAhrrVlqttsagPztJ6LmVAcm4sh4Ckx99FgibQCbT/zui+c6IUyEQcVIwtmoPANl3K2Yn85t+G+Cu9xxXY0JPlZcUHntHg0R0PUWc3LuzLXnff7JWEzPyhMUBLpQk5BltxuD5cTGCA6WafJuBTAqkt48VN0MFTP5c5m3PJFz8Ro1GLY8hw1uhUEx28DKBkQSGpkZNx0oJXETIDpSBfD0dHWBvZQPd0</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos</NameIDFormat>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:entity</NameIDFormat>
<AssertionConsumerService index="1" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://signin.volcengine.com/saml/sso"/>
<AttributeConsumingService index="1">
<ServiceName xml:lang="en">Volcengine Single Sign-On</ServiceName>
<RequestedAttribute isRequired="true" Name="https://www.volcengine.com/SAML/Attributes/Identity" FriendlyName="Identity"/>
<RequestedAttribute isRequired="true" Name="https://www.volcengine.com/SAML/Attributes/SessionName" FriendlyName="SessionName"/>
<RequestedAttribute isRequired="false" Name="https://www.volcengine.com/SAML/Attributes/SessionDuration" FriendlyName="SessionDuration"/>
</AttributeConsumingService>
</SPSSODescriptor>
<Organization>
<OrganizationName xml:lang="en">Volcengine, Inc.</OrganizationName>
<OrganizationDisplayName xml:lang="en">Volcengine</OrganizationDisplayName>
<OrganizationURL xml:lang="en">https://www.volcengine.com</OrganizationURL>
</Organization>
</EntityDescriptor>

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.4.6
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.4.9
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:3.16.0-go-1.18.2-0 as build
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:3.19.0-go-1.21.10-0 as build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN mkdir -p /root/go/src/yunion.io/x/onecloud

View File

@@ -3,7 +3,7 @@
触发时间: {{.start_time}}
报警级别: {{.level}}
触发条件: {{.description | unescaped}}
资源数量:{{len .matches}}
报警数量:{{len .matches}}
资源名称:{{.resource_name}}
详情地址: {{.web_url}}

View File

@@ -108,6 +108,7 @@
<td>名称</td>
<td>IP</td>
<td>平台</td>
<td>指标</td>
<td>触发值</td>
</tr>
</thead>
@@ -124,7 +125,8 @@
<td>
{{ index .tags "brand" }}
</td>
<td>{{$Matche.value_str}}</td>
<td>{{ $Matche.metric }}</td>
<td>{{ $Matche.value_str }}</td>
</tr>
{{end}}
</tbody>

View File

@@ -3,7 +3,7 @@ AlertName: {{.name}}
Time: {{.start_time}}
Level: {{.level}}
TriggerCondition: {{.description | unescaped}}
ResourceCount: {{len .matches}}
AlertCount: {{len .matches}}
ResourceName: {{.resource_name}}
WebUrl: {{.web_url}}

View File

@@ -108,6 +108,7 @@
<td>Name</td>
<td>IP</td>
<td>Brand</td>
<td>Metric</td>
<td>Trigger value</td>
</tr>
</thead>
@@ -124,7 +125,8 @@
<td>
{{ index .tags "brand" }}
</td>
<td>{{$Matche.value_str}}</td>
<td>{{ $Matche.metric }}</td>
<td>{{ $Matche.value_str }}</td>
</tr>
{{end}}
</tbody>

View File

@@ -25,6 +25,10 @@ func init() {
cmd.List(&compute.AppListOptions{})
cmd.Show(&compute.AppIdOptions{})
cmd.Perform("syncstatus", &compute.AppIdOptions{})
cmd.Get("hybird-connections", &compute.AppIdOptions{})
cmd.Get("certificates", &compute.AppIdOptions{})
cmd.Get("backups", &compute.AppIdOptions{})
cmd.Get("custom-domains", &compute.AppIdOptions{})
cmd1 := shell.NewResourceCmd(&modules.AppEnvironments)
cmd1.List(&compute.AppEnvironmentListOptions{})

View File

@@ -50,4 +50,10 @@ func init() {
ibCmd.Create(&compute.InstanceBackupManagerCreateFromPackageOptions{})
ibCmd.Perform("syncstatus", &compute.DiskBackupSyncstatusOptions{})
ibCmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
hbsCmd := shell.NewJointCmd(&modules.HostBackupstorages)
hbsCmd.List(&compute.HostBackupStorageListOptions{})
hbsCmd.Show(&compute.HostBackupStorageJoinOptions{})
hbsCmd.Attach(&compute.HostBackupStorageJoinOptions{})
hbsCmd.Detach(&compute.HostBackupStorageJoinOptions{})
}

View File

@@ -0,0 +1,50 @@
// 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 compute
import (
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/mcclient"
baremetalmodules "yunion.io/x/onecloud/pkg/mcclient/modules/compute/baremetal"
baremetaloptions "yunion.io/x/onecloud/pkg/mcclient/options/compute/baremetal"
)
func init() {
cmd := shell.NewResourceCmd(&baremetalmodules.BaremetalProfiles)
cmd.List(new(baremetaloptions.BaremetalProfileListOptions))
cmd.Show(new(baremetaloptions.BaremetalProfileIdOptions))
cmd.Delete(new(baremetaloptions.BaremetalProfileIdOptions))
type BaremetalProfileMatchOpts struct {
OEMNAME string
MODEL string
}
R(&BaremetalProfileMatchOpts{}, "baremetal-profile-match", "find match baremetal profile by oemname and model", func(s *mcclient.ClientSession, args *BaremetalProfileMatchOpts) error {
specs, err := baremetalmodules.BaremetalProfiles.GetMatchProfiles(s, args.OEMNAME, args.MODEL)
if err != nil {
return errors.Wrap(err, "GetMatchProfiles")
}
listResults := printutils.ListResult{}
for _, spec := range specs {
listResults.Data = append(listResults.Data, jsonutils.Marshal(spec))
}
printList(&listResults, nil)
return nil
})
}

View File

@@ -15,62 +15,17 @@
package compute
import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
opts "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
type CachedImageListOptions struct {
options.BaseListOptions
ImageType string `help:"image type" choices:"system|customized|shared|market"`
Region string `help:"show images cached at cloud region"`
Zone string `help:"show images cached at zone"`
HostSchedtagId string `help:"filter cached image with host schedtag"`
Valid *bool `help:"valid cachedimage"`
}
R(&CachedImageListOptions{}, "cached-image-list", "List cached images", func(s *mcclient.ClientSession, args *CachedImageListOptions) error {
params, err := options.ListStructToParams(args)
if err != nil {
return err
}
result, err := modules.Cachedimages.List(s, params)
if err != nil {
return err
}
printList(result, modules.Cachedimages.GetColumns(s))
return nil
})
type CachedImageShowOptions struct {
ID string `help:"ID or Name of the cached image to show"`
}
R(&CachedImageShowOptions{}, "cached-image-show", "Show cached image details", func(s *mcclient.ClientSession, args *CachedImageShowOptions) error {
result, err := modules.Cachedimages.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&CachedImageShowOptions{}, "cached-image-refresh", "Refresh cached image details", func(s *mcclient.ClientSession, args *CachedImageShowOptions) error {
result, err := modules.Cachedimages.PerformAction(s, args.ID, "refresh", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type CachedImageDeleteOptions struct {
ID []string `help:"ID or Name of the cached image to show"`
}
R(&CachedImageDeleteOptions{}, "cached-image-delete", "Remove cached image information", func(s *mcclient.ClientSession, args *CachedImageDeleteOptions) error {
results := modules.Cachedimages.BatchDelete(s, args.ID, nil)
printBatchResults(results, modules.Cachedimages.GetColumns(s))
return nil
})
cmd := shell.NewResourceCmd(&modules.Cachedimages).WithKeyword("cached-image")
cmd.List(&options.CachedImageListOptions{})
cmd.Show(&opts.BaseIdOptions{})
cmd.PerformClass("cache-image", &options.CachedImageCacheImageOptions{})
cmd.Perform("refresh", &opts.BaseIdOptions{})
cmd.BatchDelete(&opts.BaseIdsOptions{})
}

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -17,13 +17,14 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
cmd := shell.NewResourceCmd(&modules.DBInstanceAccounts).WithKeyword("dbinstance-account")
cmd.List(&options.DBInstanceAccountListOptions{})
cmd.Update(&options.BaseUpdateOptions{})
cmd.Update(&baseoptions.BaseUpdateOptions{})
cmd.Show(&options.DBInstanceAccountIdOptions{})
cmd.Delete(&options.DBInstanceAccountIdOptions{})
}

View File

@@ -17,13 +17,14 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
cmd := shell.NewResourceCmd(&modules.DBInstanceDatabases).WithKeyword("dbinstance-database")
cmd.List(&options.DBInstanceDatabaseListOptions{})
cmd.Update(&options.BaseUpdateOptions{})
cmd.Update(&baseoptions.BaseUpdateOptions{})
cmd.Delete(&options.DBInstanceDatabaseIdOptions{})
cmd.Show(&options.DBInstanceDatabaseIdOptions{})
cmd.Create(&options.DBInstanceDatabaseCreateOptions{})

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -41,46 +41,10 @@ import (
func init() {
cmd := shell.NewResourceCmd(&modules.Disks)
cmd.List(&compute_options.DiskListOptions{})
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
type DiskListOptions struct {
options.BaseListOptions
Unused *bool `help:"Show unused disks"`
Share *bool `help:"Show Share storage disks"`
Local *bool `help:"Show Local storage disks"`
Guest string `help:"Guest ID or name"`
GuestStatus string `help:"Guest Status"`
OrderByServer string `help:"Order By Server"`
Storage string `help:"Storage ID or name"`
Type string `help:"Disk type" choices:"sys|data|swap|volume"`
CloudType string `help:"Public cloud or private cloud" choices:"Public|Private"`
OrderByGuestCount string `help:"Order By Guest Count"`
BillingType string `help:"billing type" choices:"postpaid|prepaid"`
SnapshotpolicyId string `help:"snapshotpolicy id"`
}
R(&DiskListOptions{}, "disk-list", "List virtual disks", func(s *mcclient.ClientSession, opts *DiskListOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
}
if len(opts.CloudType) > 0 {
if opts.CloudType == "Public" {
params.Add(jsonutils.JSONTrue, "public_cloud")
} else if opts.CloudType == "Private" {
params.Add(jsonutils.JSONTrue, "private_cloud")
}
}
result, err := modules.Disks.List(s, params)
if err != nil {
return err
}
printList(result, modules.Disks.GetColumns(s))
return nil
})
cmd.Perform("rebuild", &options.ResourceIdOptions{})
cmd.Perform("migrate", &compute_options.DiskMigrateOptions{})
type DiskDetailOptions struct {
ID string `help:"ID or Name of disk"`
@@ -172,7 +136,7 @@ func init() {
Desc string `help:"Description" metavar:"DESCRIPTION"`
AutoDelete string `help:"enable/disable auto delete of disk" choices:"enable|disable"`
AutoSnapshot string `help:"enable/disable auto snapshot of disk" choices:"enable|disable"`
DiskType string `help:"Disk type" choices:"data|volume"`
DiskType string `help:"Disk type" choices:"data|volume|sys"`
IsSsd *bool `help:"mark disk as ssd" negative:"no-is-ssd"`
}
R(&DiskUpdateOptions{}, "disk-update", "Update property of a virtual disk", func(s *mcclient.ClientSession, args *DiskUpdateOptions) error {

View File

@@ -22,6 +22,7 @@ import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
@@ -32,6 +33,8 @@ func init() {
cmd.ClassShow(&compute.DnsZoneCapabilitiesOptions{})
cmd.Delete(&compute.SDnsZoneIdOptions{})
cmd.Create(&compute.DnsZoneCreateOptions{})
cmd.Perform("public", &options.BasePublicOptions{})
cmd.Perform("private", &options.BaseIdOptions{})
cmd.Perform("syncstatus", &compute.SDnsZoneIdOptions{})
cmd.Perform("purge", &compute.SDnsZoneIdOptions{})
cmd.Perform("add-vpcs", &compute.DnsZoneAddVpcsOptions{})

View File

@@ -41,7 +41,7 @@ func init() {
cmd.PerformWithKeyword("disable-auth", "update-auth-mode", &compute.ElasticCacheDisableAuthOptions{})
type ElasticCacheAccountResetPasswordOptions struct {
options.ElasticCacheIdOptions
compute.ElasticCacheIdOptions
PASSWORD string `help:"elastic cache account password."`
}
@@ -77,7 +77,7 @@ func init() {
return nil
})
R(&options.ElasticCacheAccountCreateOptions{}, "elastic-cache-account-create", "Create elastisc cache account", func(s *mcclient.ClientSession, opts *options.ElasticCacheAccountCreateOptions) error {
R(&compute.ElasticCacheAccountCreateOptions{}, "elastic-cache-account-create", "Create elastisc cache account", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAccountCreateOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
@@ -92,7 +92,7 @@ func init() {
return nil
})
R(&options.ElasticCacheIdOptions{}, "elastic-cache-account-delete", "Delete elastisc cache account", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-account-delete", "Delete elastisc cache account", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
result, err := modules.ElasticCacheAccount.Delete(s, opts.ID, nil)
if err != nil {
return err
@@ -102,7 +102,7 @@ func init() {
return nil
})
R(&options.ElasticCacheBackupCreateOptions{}, "elastic-cache-backup-create", "Create elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheBackupCreateOptions) error {
R(&compute.ElasticCacheBackupCreateOptions{}, "elastic-cache-backup-create", "Create elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheBackupCreateOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
@@ -132,7 +132,7 @@ func init() {
return nil
})
R(&options.ElasticCacheIdOptions{}, "elastic-cache-backup-delete", "Delete elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-backup-delete", "Delete elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
result, err := modules.ElasticCacheBackup.Delete(s, opts.ID, nil)
if err != nil {
return err
@@ -142,7 +142,7 @@ func init() {
return nil
})
R(&options.ElasticCacheIdOptions{}, "elastic-cache-backup-restore", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-backup-restore", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
result, err := modules.ElasticCacheBackup.PerformAction(s, opts.ID, "restore-instance", nil)
if err != nil {
return err
@@ -152,7 +152,7 @@ func init() {
return nil
})
R(&options.ElasticCacheAclCreateOptions{}, "elastic-cache-acl-create", "Create elastisc cache acl", func(s *mcclient.ClientSession, opts *options.ElasticCacheAclCreateOptions) error {
R(&compute.ElasticCacheAclCreateOptions{}, "elastic-cache-acl-create", "Create elastisc cache acl", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAclCreateOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
@@ -167,7 +167,7 @@ func init() {
return nil
})
R(&options.ElasticCacheIdOptions{}, "elastic-cache-acl-delete", "Delete elastisc cache acl", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-acl-delete", "Delete elastisc cache acl", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
result, err := modules.ElasticCacheAcl.Delete(s, opts.ID, nil)
if err != nil {
return err
@@ -192,7 +192,7 @@ func init() {
return nil
})
R(&options.ElasticCacheAclUpdateOptions{}, "elastic-cache-acl-update", "Update elastisc cache acl", func(s *mcclient.ClientSession, opts *options.ElasticCacheAclUpdateOptions) error {
R(&compute.ElasticCacheAclUpdateOptions{}, "elastic-cache-acl-update", "Update elastisc cache acl", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAclUpdateOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
@@ -223,7 +223,7 @@ func init() {
return nil
})
R(&options.ElasticCacheParameterUpdateOptions{}, "elastic-cache-parameter-update", "Update elastisc cache parameter", func(s *mcclient.ClientSession, opts *options.ElasticCacheParameterUpdateOptions) error {
R(&compute.ElasticCacheParameterUpdateOptions{}, "elastic-cache-parameter-update", "Update elastisc cache parameter", func(s *mcclient.ClientSession, opts *compute.ElasticCacheParameterUpdateOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
@@ -293,7 +293,7 @@ func init() {
return nil
})
R(&options.ElasticCacheRemoteUpdateOptions{}, "elastic-cache-remote-update", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheRemoteUpdateOptions) error {
R(&compute.ElasticCacheRemoteUpdateOptions{}, "elastic-cache-remote-update", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheRemoteUpdateOptions) error {
params, err := options.StructToParams(opts)
if err != nil {
return err
@@ -307,7 +307,7 @@ func init() {
return nil
})
R(&options.ElasticCacheAutoRenewOptions{}, "elastic-cache-auto-renew", "Set elastisc cache auto renew", func(s *mcclient.ClientSession, opts *options.ElasticCacheAutoRenewOptions) error {
R(&compute.ElasticCacheAutoRenewOptions{}, "elastic-cache-auto-renew", "Set elastisc cache auto renew", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAutoRenewOptions) error {
params, err := options.StructToParams(opts)
if err != nil {
return err
@@ -321,7 +321,7 @@ func init() {
return nil
})
R(&options.ElasticCacheRenewOptions{}, "elastic-cache-renew", "Renew elastisc cache", func(s *mcclient.ClientSession, opts *options.ElasticCacheRenewOptions) error {
R(&compute.ElasticCacheRenewOptions{}, "elastic-cache-renew", "Renew elastisc cache", func(s *mcclient.ClientSession, opts *compute.ElasticCacheRenewOptions) error {
params, err := options.StructToParams(opts)
if err != nil {
return err

View File

@@ -37,7 +37,6 @@ import (
func init() {
cmd := shell.NewResourceCmd(&modules.Hosts)
cmd.List(&compute.HostListOptions{})
cmd.Show(&options.BaseShowOptions{})
cmd.GetMetadata(&options.BaseIdOptions{})
cmd.GetProperty(&compute.HostStatusStatisticsOptions{})
@@ -54,6 +53,8 @@ func init() {
cmd.Perform("probe-isolated-devices", &options.BaseIdOptions{})
cmd.Perform("class-metadata", &options.ResourceMetadataOptions{})
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
cmd.PerformClass("validate-ipmi", &compute.HostValidateIPMI{})
cmd.Perform("set-commit-bound", &compute.HostSetCommitBoundOptions{})
cmd.BatchPerform("enable", &options.BaseIdsOptions{})
cmd.BatchPerform("disable", &options.BaseIdsOptions{})
@@ -88,6 +89,34 @@ func init() {
}
}, &options.BaseIdOptions{})
R(&compute.HostShowOptions{}, "host-show", "Show details of a host", func(s *mcclient.ClientSession, args *compute.HostShowOptions) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := modules.Hosts.Get(s, args.ID, params)
if err != nil {
return err
}
resultDict := result.(*jsonutils.JSONDict)
if !args.ShowAll {
if !args.ShowMetadata {
print("ShowMetadata\n")
resultDict.Remove("metadata")
}
if !args.ShowNicInfo {
print("ShowMetadata\n")
resultDict.Remove("nic_info")
}
if !args.ShowSysInfo {
print("ShowSysInfo\n")
resultDict.Remove("sys_info")
}
}
printObject(resultDict)
return nil
})
R(&options.BaseIdOptions{}, "host-logininfo", "Get SSH login information of a host", func(s *mcclient.ClientSession, args *options.BaseIdOptions) error {
i, e := modules.Hosts.PerformAction(s, args.ID, "login-info", nil)
if e != nil {
@@ -173,14 +202,12 @@ func init() {
})
type HostUpdateOptions struct {
ID string `help:"ID or Name of Host"`
Name string `help:"New name of the host"`
Desc string `help:"New Description of the host"`
CpuCommitBound float64 `help:"CPU overcommit upper bound at this host"`
MemoryCommitBound float64 `help:"Memory overcommit upper bound at this host"`
MemoryReserved string `help:"Memory reserved"`
CpuReserved int64 `help:"CPU reserved"`
HostType string `help:"Change host type, CAUTION!!!!" choices:"hypervisor|kubelet|esxi|baremetal"`
ID string `help:"ID or Name of Host"`
Name string `help:"New name of the host"`
Desc string `help:"New Description of the host"`
MemoryReserved string `help:"Memory reserved"`
CpuReserved int64 `help:"CPU reserved"`
HostType string `help:"Change host type, CAUTION!!!!" choices:"hypervisor|kubelet|esxi|baremetal"`
// AccessIp string `help:"Change access ip, CAUTION!!!!"`
AccessMac string `help:"Change baremetal access MAC, CAUTION!!!!"`
Uuid string `help:"Change baremetal UUID, CAUTION!!!!"`
@@ -202,12 +229,6 @@ func init() {
if len(args.Desc) > 0 {
params.Add(jsonutils.NewString(args.Desc), "description")
}
if args.CpuCommitBound > 0.0 {
params.Add(jsonutils.NewFloat64(args.CpuCommitBound), "cpu_cmtbound")
}
if args.MemoryCommitBound > 0.0 {
params.Add(jsonutils.NewFloat64(args.MemoryCommitBound), "mem_cmtbound")
}
if len(args.MemoryReserved) > 0 {
params.Add(jsonutils.NewString(args.MemoryReserved), "mem_reserved")
}
@@ -601,7 +622,7 @@ func init() {
i, e := modules.Hosts.PerformAction(s, args.ID, "login-info", nil)
privateKey := ""
if e != nil {
if httputils.ErrorCode(e) == 404 || e.Error() == "ciphertext too short" {
if httputils.ErrorCode(e) == 404 || strings.Contains(e.Error(), "ciphertext too short") {
var err error
privateKey, err = modules.Sshkeypairs.FetchPrivateKeyBySession(context.Background(), s)
if err != nil {

View File

@@ -15,8 +15,13 @@
package compute
import (
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
@@ -28,4 +33,69 @@ func init() {
cmd.Delete(new(options.IsolatedDeviceIdsOptions))
cmd.Perform("set-hardware-info", new(options.IsolatedDeviceModelSetHardwareInfoOptions))
cmd.Get("hardware-info", new(options.IsolatedDeviceIdsOptions))
type HostIsolatedDeviceModelListOptions struct {
baseoptions.BaseListOptions
Host string `help:"ID or Name of Host"`
IsolatedDeviceModel string `help:"ID or Name of Isolated device model"`
}
R(&HostIsolatedDeviceModelListOptions{}, "host-isolated-device-model-list",
"List host Isolated device model pairs", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelListOptions) error {
var params *jsonutils.JSONDict
{
var err error
params, err = args.BaseListOptions.Params()
if err != nil {
return err
}
}
var result *printutils.ListResult
var err error
if len(args.Host) > 0 {
result, err = modules.HostIsolatedDeviceModels.ListDescendent(s, args.Host, params)
} else if len(args.IsolatedDeviceModel) > 0 {
result, err = modules.HostIsolatedDeviceModels.ListDescendent2(s, args.IsolatedDeviceModel, params)
} else {
result, err = modules.HostIsolatedDeviceModels.List(s, params)
}
if err != nil {
return err
}
printList(result, modules.HostIsolatedDeviceModels.GetColumns(s))
return nil
})
type HostIsolatedDeviceModelDetailOptions struct {
HOST string `help:"ID or Name of Host"`
IsolatedDeviceModel string `help:"ID or Name of Isolated device model"`
}
R(&HostIsolatedDeviceModelDetailOptions{}, "host-isolated-device-model-show", "Show host isolated-device-model details", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelDetailOptions) error {
result, err := modules.HostIsolatedDeviceModels.Get(s, args.HOST, args.IsolatedDeviceModel, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&HostIsolatedDeviceModelDetailOptions{}, "host-isolated-device-model-detach", "Detach a isolated-device-model from a host", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelDetailOptions) error {
result, err := modules.HostIsolatedDeviceModels.Detach(s, args.HOST, args.IsolatedDeviceModel, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&HostIsolatedDeviceModelDetailOptions{}, "host-isolated-device-model-attach", "Attach a isolated-device-model to a host", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelDetailOptions) error {
params := jsonutils.NewDict()
result, err := modules.HostIsolatedDeviceModels.Attach(s, args.HOST, args.IsolatedDeviceModel, params)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -15,90 +15,15 @@
package compute
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
type DeviceListOptions struct {
options.BaseListOptions
Unused bool `help:"Only show unused devices"`
Gpu bool `help:"Only show gpu devices"`
Host string `help:"Host ID or Name"`
Region string `help:"Cloudregion ID or Name"`
Zone string `help:"Zone ID or Name"`
Server string `help:"Server ID or Name"`
}
R(&DeviceListOptions{}, "isolated-device-list", "List isolated devices like GPU", func(s *mcclient.ClientSession, args *DeviceListOptions) error {
var params *jsonutils.JSONDict
{
var err error
params, err = args.BaseListOptions.Params()
if err != nil {
return err
}
}
if len(args.Host) > 0 {
params.Add(jsonutils.NewString(args.Host), "host")
}
if args.Unused {
params.Add(jsonutils.JSONTrue, "unused")
}
if args.Gpu {
params.Add(jsonutils.JSONTrue, "gpu")
}
if len(args.Region) > 0 {
params.Add(jsonutils.NewString(args.Region), "region")
}
if args.Zone != "" {
params.Add(jsonutils.NewString(args.Zone), "zone")
}
if args.Server != "" {
params.Add(jsonutils.NewString(args.Server), "guest_id")
}
result, err := modules.IsolatedDevices.List(s, params)
if err != nil {
return err
}
printList(result, modules.IsolatedDevices.GetColumns(s))
return nil
})
type DeviceShowOptions struct {
ID string `help:"ID of the isolated device"`
}
R(&DeviceShowOptions{}, "isolated-device-show", "Show isolated device details", func(s *mcclient.ClientSession, args *DeviceShowOptions) error {
result, err := modules.IsolatedDevices.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type DeviceDeleteOptions struct {
IDS []string `help:"IDs of the isolated device"`
}
R(&DeviceDeleteOptions{}, "isolated-device-delete", "Delete a isolated device", func(s *mcclient.ClientSession, args *DeviceDeleteOptions) error {
result := modules.IsolatedDevices.BatchDelete(s, args.IDS, nil)
printBatchResults(result, modules.IsolatedDevices.GetColumns(s))
return nil
})
type DeviceUpdateOptions struct {
ID []string `help:"ID of the isolated device" json:"-"`
ReservedCpu *int `help:"reserved cpu for isolated device"`
ReservedMem *int `help:"reserved mem for isolated device"`
ReservedStorage *int `help:"reserved storage for isolated device"`
DevType string `help:"Device type" choices:"GPU-HPC|GPU-VGA"`
}
R(&DeviceUpdateOptions{}, "isolated-device-update", "Update a isolated device", func(s *mcclient.ClientSession, args *DeviceUpdateOptions) error {
res := modules.IsolatedDevices.BatchUpdate(s, args.ID, jsonutils.Marshal(args))
printBatchResults(res, modules.IsolatedDevices.GetColumns(s))
return nil
})
cmd := shell.NewResourceCmd(&modules.IsolatedDevices)
cmd.List(&compute.DeviceListOptions{})
cmd.Update(&compute.DeviceUpdateOptions{})
cmd.Show(&compute.DeviceShowOptions{})
cmd.BatchDelete(&compute.DeviceDeleteOptions{})
}

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -26,6 +26,7 @@ import (
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"
"yunion.io/x/onecloud/pkg/util/netutils2"
)
func init() {
@@ -240,4 +241,21 @@ func init() {
printObject(net)
return nil
})
type NetworkInterfaceInfoOptions struct {
DEV string `help:"name of device, e.g. eth0"`
}
R(&NetworkInterfaceInfoOptions{}, "network-interface-info", "Show addr and routes of interface", func(s *mcclient.ClientSession, args *NetworkInterfaceInfoOptions) error {
netIf := netutils2.NewNetInterface(args.DEV)
fmt.Println("[Slave Addresses]")
for _, addr := range netIf.GetSlaveAddresses() {
fmt.Printf("%s/%s\n", addr[0], addr[1])
}
fmt.Println("[Routes]")
for _, r := range netIf.GetRouteSpecs() {
fmt.Printf("%s via %s dev %d\n", r.Dst.String(), r.Gw.String(), r.LinkIndex)
}
return nil
})
}

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -22,7 +22,7 @@ import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
type schedtagModelHelper struct {

View File

@@ -17,7 +17,8 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
@@ -29,6 +30,6 @@ func init() {
cmd.Create(new(options.SchedtagCreateOptions))
cmd.Update(new(options.SchedtagUpdateOptions))
cmd.BatchPerform("set-scope", new(options.SchedtagSetScopeOptions))
cmd.PerformWithKeyword("set-user-metadata", "user-metadata", new(options.ResourceMetadataOptions))
cmd.PerformWithKeyword("set-user-metadata", "user-metadata", new(baseoptions.ResourceMetadataOptions))
cmd.Perform("set-resource", new(options.SchedtagSetResource))
}

View File

@@ -17,7 +17,8 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
@@ -25,7 +26,7 @@ func init() {
cmd.List(&options.SecgroupListOptions{})
cmd.Create(&options.SecgroupCreateOptions{})
cmd.Show(&options.SecgroupIdOptions{})
cmd.Update(&options.BaseUpdateOptions{})
cmd.Update(&baseoptions.BaseUpdateOptions{})
cmd.Delete(&options.SecgroupIdOptions{})
cmd.Perform("public", &options.SecgroupIdOptions{})
cmd.Perform("syncstatus", &options.SecgroupIdOptions{})
@@ -33,4 +34,5 @@ func init() {
cmd.Perform("add-rule", &options.SecgroupsAddRuleOptions{})
cmd.Perform("change-owner", &options.SecgroupChangeOwnerOptions{})
cmd.Perform("import-rules", &options.SecgroupImportRulesOptions{})
cmd.PerformClass("clean", &options.SecgroupCleanOptions{})
}

View File

@@ -94,6 +94,7 @@ func init() {
Driver string `help:"Driver model of vNIC" choices:"virtio|e1000|vmxnet3|rtl8139"`
Index int64 `help:"Index of NIC" default:"-1"`
Ifname string `help:"Interface name of vNIC on host"`
Default bool `help:"is default nic?"`
}
R(&ServerNetworkUpdateOptions{}, "server-network-update", "Update server network settings", func(s *mcclient.ClientSession, args *ServerNetworkUpdateOptions) error {
params := jsonutils.NewDict()
@@ -106,6 +107,9 @@ func init() {
if len(args.Ifname) > 0 {
params.Add(jsonutils.NewString(args.Ifname), "ifname")
}
if args.Default {
params.Add(jsonutils.JSONTrue, "is_default")
}
if params.Size() == 0 {
return InvalidUpdateError()
}
@@ -176,6 +180,7 @@ func init() {
SERVER string `help:"ID or Name of server"`
MACORIP string `help:"Mac Or IP of NIC"`
Reserve bool `help:"Put the release IP address into reserved address pool"`
Force bool `help:"detach server network by force"`
}
R(&ServerDetachNetworkOptions{}, "server-detach-network", "Detach the virtual network fron a virtual server", func(s *mcclient.ClientSession, args *ServerDetachNetworkOptions) error {
params := jsonutils.NewDict()
@@ -183,6 +188,9 @@ func init() {
if args.Reserve {
params.Add(jsonutils.JSONTrue, "reserve")
}
if args.Force {
params.Add(jsonutils.JSONTrue, "force")
}
if regutils.MatchMacAddr(args.MACORIP) {
params.Add(jsonutils.NewString(args.MACORIP), "mac")
} else if regutils.MatchIP4Addr(args.MACORIP) {

View File

@@ -122,10 +122,12 @@ func init() {
cmd.Perform("reset-nic-traffic-limit", &options.ServerNicTrafficLimitOptions{})
cmd.Perform("set-nic-traffic-limit", &options.ServerNicTrafficLimitOptions{})
cmd.Perform("add-sub-ips", &options.ServerAddSubIpsOptions{})
cmd.Perform("update-sub-ips", &options.ServerUpdateSubIpsOptions{})
cmd.BatchPerform("set-os-info", &options.ServerSetOSInfoOptions{})
cmd.BatchPerform("start-rescue", &options.ServerStartOptions{})
cmd.BatchPerform("stop-rescue", &options.ServerStartOptions{})
cmd.BatchPerform("sync-os-info", &options.ServerIdsOptions{})
cmd.BatchPerform("set-root-disk-matcher", &options.ServerSetRootDiskMatcher{})
cmd.Get("vnc", new(options.ServerVncOptions))
cmd.Get("desc", new(options.ServerIdOptions))

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -32,6 +32,7 @@ func init() {
Share *bool `help:"Show shared snapshots"`
DiskType string `help:"Filter by disk type" choices:"sys|data"`
Server string `help:"Filter by server" json:"server_id"`
Unused bool
OrderByGuest string
OrderByDiskName string

View File

@@ -18,12 +18,11 @@ import (
"fmt"
"os"
"path"
"strings"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/onecloud/pkg/hostman/guestfs/fsdriver"
deployapi "yunion.io/x/onecloud/pkg/hostman/hostdeployer/apis"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/util/procutils"
@@ -101,8 +100,44 @@ func init() {
}
oldKeys = string(output)
}
pubKeys := &deployapi.SSHKeys{AdminPublicKey: pubKey}
newKeys := fsdriver.MergeAuthorizedKeys(oldKeys, pubKeys, true)
var MergeAuthorizedKeys = func(oldKeys string, pubKey string) string {
const sshKeySignature = "@yunioncloudpods"
var allkeys = make(map[string]string)
if len(oldKeys) > 0 {
for _, line := range strings.Split(oldKeys, "\n") {
line = strings.TrimSpace(line)
dat := strings.Split(line, " ")
if len(dat) > 1 {
if len(dat) > 2 && dat[2] == sshKeySignature {
// skip ssh keys with signature
continue
}
if _, ok := allkeys[dat[1]]; !ok {
allkeys[dat[1]] = line
}
}
}
}
candiateKeys := []string{pubKey}
for _, k := range candiateKeys {
if len(k) > 0 {
k = strings.TrimSpace(k)
dat := strings.Split(k, " ")
if len(dat) > 1 {
if _, ok := allkeys[dat[1]]; !ok {
allkeys[dat[1]] = strings.Join([]string{dat[0], dat[1], sshKeySignature}, " ")
}
}
}
}
var keys = make([]string, 0)
for _, val := range allkeys {
keys = append(keys, val)
}
return strings.Join(keys, "\n") + "\n"
}
newKeys := MergeAuthorizedKeys(oldKeys, pubKey)
if output, err := procutils.NewCommand(
"sh", "-c", fmt.Sprintf("echo '%s' > %s", newKeys, authFile)).Output(); err != nil {
return errors.Wrapf(err, "write public keys: %s", output)

View File

@@ -47,6 +47,7 @@ func init() {
cmd.Perform("private", &options.BaseIdOptions{})
cmd.Get("hardware-info", &options.BaseIdOptions{})
cmd.Perform("set-hardware-info", &compute.StorageSetHardwareInfoOptions{})
cmd.Perform("set-commit-bound", &compute.StorageSetCommitBoundOptions{})
type StorageCephRunOptions struct {
ID string `help:"ID or name of ceph storage"`
@@ -60,9 +61,10 @@ func init() {
info := struct {
StorageType string `json:"storage_type"`
StorageConf struct {
Key string `json:"key"`
MonHost string `json:"mon_host"`
Pool string `json:"pool"`
Key string `json:"key"`
MonHost string `json:"mon_host"`
Pool string `json:"pool"`
EnableMessengerV2 bool `json:"enable_messenger_v2"`
}
}{}
err = result.Unmarshal(&info)
@@ -76,6 +78,7 @@ func init() {
info.StorageConf.MonHost,
info.StorageConf.Key,
info.StorageConf.Pool,
info.StorageConf.EnableMessengerV2,
)
if err != nil {
return errors.Wrap(err, "cephutils.NewClient")

View File

@@ -33,7 +33,7 @@ import (
type GeneralUsageOptions struct {
HostType []string `help:"Host types" choices:"hypervisor|baremetal|esxi|xen|kubelet|hyperv|aliyun|azure|aws|huawei|qcloud|openstack|ucloud|zstack|google|ctyun"`
Provider []string `help:"Provider" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun"`
Brand []string `help:"Brands" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|DStack|Google|Ctyun"`
Brand []string `help:"Brands" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun"`
Project string `help:"show usage of specified project"`
ProjectDomain string `help:"show usage of specified domain"`

View File

@@ -17,7 +17,7 @@ package compute
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {

View File

@@ -18,7 +18,8 @@ import (
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
@@ -33,12 +34,12 @@ func init() {
cmd.Perform("sync", &options.VpcIdOptions{})
cmd.Perform("syncstatus", &options.VpcIdOptions{})
cmd.Perform("private", &options.VpcIdOptions{})
cmd.Perform("public", &options.BasePublicOptions{})
cmd.Perform("public", &baseoptions.BasePublicOptions{})
cmd.Perform("change-owner", &options.VpcChangeOwnerOptions{})
cmd.Get("vpc-change-owner-candidate-domains", &options.VpcIdOptions{})
cmd.Get("topology", &options.VpcIdOptions{})
R(&options.ResourceMetadataOptions{}, "vpc-set-user-metadata", "Set metadata of a vpc", func(s *mcclient.ClientSession, opts *options.ResourceMetadataOptions) error {
R(&baseoptions.ResourceMetadataOptions{}, "vpc-set-user-metadata", "Set metadata of a vpc", func(s *mcclient.ClientSession, opts *baseoptions.ResourceMetadataOptions) error {
params, err := opts.Params()
if err != nil {
return err

View File

@@ -23,7 +23,7 @@ import (
func init() {
type WorkerListOptions struct {
ServiceType string `choices:"image|cloudid|cloudevent|devtool|ansible|identity|notify|log|compute|compute_v2"`
ServiceType string `choices:"image|cloudid|cloudevent|devtool|ansible|identity|notify|log|compute|compute_v2|meter|suggestion|cloudmon|cloudproxy|dns|monitor|scheduler|vpcagent|webconsole|yunionconf|bastionhost|extdb|yunionapi"`
}
R(&WorkerListOptions{}, "worker-list", "List workers", func(s *mcclient.ClientSession, args *WorkerListOptions) error {
result, err := modules.Workers.List(s, jsonutils.Marshal(args))

View File

@@ -667,15 +667,15 @@ func (cmd JointCmd) List(args IJointListOpt) {
cmd.RunWithDesc("list", fmt.Sprintf("list %s %s pairs", man.MasterManager().KeyString(), man.SlaveManager().KeyString()), args, callback)
}
type IJointShowOpt interface {
type IJointOpt interface {
IOpt
GetMasterId() string
GetSlaveId() string
}
func (cmd JointCmd) Show(args IJointShowOpt) {
func (cmd JointCmd) Show(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointShowOpt) error {
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
@@ -689,3 +689,54 @@ func (cmd JointCmd) Show(args IJointShowOpt) {
}
cmd.Run("show", args, callback)
}
func (cmd JointCmd) Attach(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := man.Attach(s, args.GetMasterId(), args.GetSlaveId(), params)
if err != nil {
return err
}
PrintObject(result)
return nil
}
cmd.Run("attach", args, callback)
}
func (cmd JointCmd) Detach(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := man.Detach(s, args.GetMasterId(), args.GetSlaveId(), params)
if err != nil {
return err
}
PrintObject(result)
return nil
}
cmd.Run("detach", args, callback)
}
func (cmd JointCmd) Update(args IJointOpt) {
man := cmd.manager.(modulebase.JointManager)
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := man.Update(s, args.GetMasterId(), args.GetSlaveId(), nil, params)
if err != nil {
return err
}
PrintObject(result)
return nil
}
cmd.Run("update", args, callback)
}

View File

@@ -388,16 +388,18 @@ func init() {
})
type ProjectAddUserGroupOptions struct {
Project string `help:"ID or name of project to add users/groups" positional:"true" optional:"false"`
User []string `help:"ID of user to add"`
Group []string `help:"ID of group to add"`
Role []string `help:"ID of role to add"`
Project string `help:"ID or name of project to add users/groups" positional:"true" optional:"false"`
User []string `help:"ID of user to add"`
Group []string `help:"ID of group to add"`
Role []string `help:"ID of role to add"`
EnableAllUsers bool
}
R(&ProjectAddUserGroupOptions{}, "project-add-user-group", "Batch add users/groups to project", func(s *mcclient.ClientSession, args *ProjectAddUserGroupOptions) error {
input := api.SProjectAddUserGroupInput{}
input.Users = args.User
input.Groups = args.Group
input.Roles = args.Role
input.EnableAllUsers = args.EnableAllUsers
err := input.Validate()
if err != nil {
return err

View File

@@ -413,15 +413,32 @@ func init() {
return nil
})
type UserGroupsOptions struct {
USER string `help:"User ID or Name"`
Gids []string `help:"group ID or Name"`
Action string `default:"join" choices:"join|leave"`
Enabled bool
}
R(&UserGroupsOptions{}, "user-join-groups", "Add a user to groups", func(s *mcclient.ClientSession, args *UserGroupsOptions) error {
_, err := modules.UsersV3.DoJoinGroups(s, args.USER, jsonutils.Marshal(args))
if err != nil {
return err
}
return nil
})
type UserJoinProjectOptions struct {
User string `help:"User Id or name" optional:"false" positional:"true"`
Project []string `help:"Projects to join" nargs:"+"`
Role []string `help:"User join project with roles" nargs:"+"`
Enabled bool
}
R(&UserJoinProjectOptions{}, "user-join-project", "User join projects with roles", func(s *mcclient.ClientSession, args *UserJoinProjectOptions) error {
input := api.SJoinProjectsInput{}
input.Projects = args.Project
input.Roles = args.Role
input.Enabled = args.Enabled
result, err := modules.UsersV3.PerformAction(s, args.User, "join", jsonutils.Marshal(input))
if err != nil {
return err

View File

@@ -37,6 +37,8 @@ func initContainerRegistry() {
cmd.Create(new(o.RegistryCreateOptions))
cmd.Get("images", new(o.RegistryGetImagesOptions))
cmd.Get("image-tags", new(o.RegistryGetImageTagsOptions))
cmd.BatchPerform("public", new(o.RegistryPublicOptions))
cmd.Perform("private", new(o.RegistryGetOptions))
type UploadOptions struct {
REGISTRY string `help:"The name or id of registry" json:"-"`

View File

@@ -50,4 +50,28 @@ func init() {
fmt.Println(result)
return nil
})
type DistinctFieldsOption struct {
MODULE string `help:"module name"`
Field []string `help:"distinct field name to query"`
ExtraField []string `help:"distinct field name to query"`
ExtraResource string
}
R(&DistinctFieldsOption{}, "distinct-fields", "Query values of a distinct fields for a module", func(s *mcclient.ClientSession, args *DistinctFieldsOption) error {
mod, err := modulebase.GetModule(s, args.MODULE)
if err != nil || mod == nil {
if err != nil {
return fmt.Errorf("module %s not found %s", args.MODULE, err)
}
return fmt.Errorf("No module %s found", args.MODULE)
}
params := jsonutils.Marshal(args)
result, err := mod.Get(s, "distinct-fields", params)
if err != nil {
return err
}
fmt.Println(result)
return nil
})
}

View File

@@ -19,13 +19,50 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/util/sets"
"yunion.io/x/pkg/utils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules/yunionconf"
)
type GlobalSettingsValue struct {
SetupKeys []string `json:"setupKeys"`
SetupKeysVersion string `json:"setupKeysVersion"`
SetupOneStackInitialized bool `json:"setupOneStackInitialized"`
ProductVersion string `json:"productVersion"`
UserDefinedKeys map[string]bool `json:"userDefinedKeys"`
}
func NewGlobalSettingsValue(setupKeys []string, setupOneStack bool) *GlobalSettingsValue {
settings := &GlobalSettingsValue{
SetupOneStackInitialized: setupOneStack,
UserDefinedKeys: make(map[string]bool),
}
for _, key := range setupKeys {
settings.Switch(key, true)
}
return settings
}
func (g *GlobalSettingsValue) Switch(featureKey string, on bool) {
if g.UserDefinedKeys == nil {
g.UserDefinedKeys = map[string]bool{}
}
g.UserDefinedKeys[featureKey] = on
ss := sets.NewString(g.SetupKeys...)
if on {
ss.Insert(featureKey)
} else {
ss.Delete(featureKey)
}
g.SetupKeys = ss.List()
}
func init() {
var storageFeatures = []string{
"s3", "xsky", "ceph",
}
var features = []string{
"onestack",
"baremetal",
@@ -48,9 +85,6 @@ func init() {
"cloudpods",
"hcso",
"nutanix",
"s3",
"ceph",
"xsky",
"bill",
"auth",
"onecloud",
@@ -67,9 +101,13 @@ func init() {
"cucloud",
"qingcloud",
"volcengine",
"oracle",
"oraclecloud",
"sangfor",
"cephfs",
}
features = append(features, storageFeatures...)
const (
GlobalSettings = "global-settings"
SystemScope = "system"
@@ -96,13 +134,14 @@ func init() {
if len(items.Data) == 0 {
// create it if enabled
if enable {
value := []string{name}
if utils.IsInStringArray(name, storageFeatures) {
value = append(value, "storage")
}
input := map[string]interface{}{
"name": GlobalSettings,
"service_id": YunionAgent,
"value": map[string]interface{}{
"setupKeys": []string{name},
"setupOneStackInitialized": true,
},
"value": NewGlobalSettingsValue(value, true),
}
params := jsonutils.Marshal(input)
if _, err := yunionconf.Parameters.Create(s, params); err != nil {
@@ -124,33 +163,23 @@ func init() {
if err != nil {
return errors.Wrap(err, "get value")
}
setupKeys := []string{}
if value.Contains("setupKeys") {
if err := value.Unmarshal(&setupKeys, "setupKeys"); err != nil {
return errors.Wrap(err, "unmarshal setupKeys")
}
curConf := new(GlobalSettingsValue)
if err := value.Unmarshal(curConf); err != nil {
return errors.Wrapf(err, "unmarshal to GlobalSettingsValue: %s", value)
}
if !enable {
if utils.IsInStringArray(name, setupKeys) {
newKeys := []string{}
for _, key := range setupKeys {
if key != name {
newKeys = append(newKeys, key)
}
}
setupKeys = newKeys
}
} else if enable {
if !utils.IsInStringArray(name, setupKeys) {
setupKeys = append(setupKeys, name)
curConf.Switch(name, false)
} else {
curConf.Switch(name, true)
if utils.IsInStringArray(name, storageFeatures) {
curConf.Switch("storage", true)
}
}
value.(*jsonutils.JSONDict).Set("setupKeys", jsonutils.Marshal(setupKeys))
id, err := ss.GetString("id")
if err != nil {
return errors.Errorf("get id from %s", ss)
}
ss.(*jsonutils.JSONDict).Set("value", value)
ss.(*jsonutils.JSONDict).Set("value", jsonutils.Marshal(curConf))
obj, err := yunionconf.Parameters.Update(s, id, ss)
if err != nil {
return errors.Wrapf(err, "update %s(%s)", GlobalSettings, id)

View File

@@ -23,11 +23,11 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/util/netutils"
"yunion.io/x/pkg/util/signalutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/util/netutils2"
"yunion.io/x/onecloud/pkg/util/procutils"
)
@@ -125,7 +125,7 @@ func init() {
} {
pType := kind
R(&TraceOptions{}, fmt.Sprintf("pprof-%s", pType), fmt.Sprintf("pprof %s of backend service", pType), func(s *mcclient.ClientSession, args *TraceOptions) error {
port, err := netutils2.GetFreePort()
port, err := netutils.GetFreePort()
if err != nil {
return err
}

View File

@@ -15,7 +15,6 @@
package monitor
import (
"encoding/json"
"fmt"
"yunion.io/x/pkg/errors"
@@ -46,11 +45,7 @@ func init() {
if err != nil {
return errors.Wrap(err, "DoTestRun")
}
jsonBytes, err := json.MarshalIndent(ret, "", " ")
if err != nil {
return errors.Wrap(err, "MarshalIndent")
}
fmt.Printf("%s\n", jsonBytes)
fmt.Printf("%s\n", ret.PrettyString())
return nil
})
}

View File

@@ -36,9 +36,7 @@ func initAlertNotification() {
return err
}
var result *printutils.ListResult
if len(args.Alert) > 0 {
result, err = monitor.Alertnotification.ListDescendent(s, args.Alert, params)
} else if len(args.Notification) > 0 {
if len(args.Notification) > 0 {
result, err = monitor.Alertnotification.ListDescendent2(s, args.Notification, params)
} else {
result, err = monitor.Alertnotification.List(s, params)

View File

@@ -15,10 +15,136 @@
package monitor
import (
"yunion.io/x/jsonutils"
monitorapi "yunion.io/x/onecloud/pkg/apis/monitor"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/monitor"
options "yunion.io/x/onecloud/pkg/mcclient/options/monitor"
)
type CommonAlertTerm struct {
Database string
Measurement string
Operator string // and / or
Field []string
FieldFunc string
Reduce string
Comparator string
Threshold float64
Filters []monitorapi.MetricQueryTag
FieldOpt string
Name string
ConditionType string
From string
Interval string
GroupBy string
Level string
}
func newCommonAlertQuery(tem *CommonAlertTerm) *monitorapi.CommonAlertQuery {
mq := monitorapi.MetricQuery{
Alias: "",
Tz: "",
Database: tem.Database,
Measurement: tem.Measurement,
Tags: make([]monitorapi.MetricQueryTag, 0),
GroupBy: make([]monitorapi.MetricQueryPart, 0),
Selects: nil,
Interval: "",
Policy: "",
ResultFormat: "",
}
for _, field := range tem.Field {
sel := monitorapi.MetricQueryPart{
Type: "field",
Params: []string{field},
}
selectPart := []monitorapi.MetricQueryPart{sel}
if len(tem.FieldFunc) != 0 {
selectPart = append(selectPart, monitorapi.MetricQueryPart{
Type: tem.FieldFunc,
Params: []string{},
})
} else {
selectPart = append(selectPart, monitorapi.MetricQueryPart{
Type: "mean",
Params: []string{},
})
}
mq.Selects = append(mq.Selects, selectPart)
}
if len(tem.Filters) != 0 {
for _, filter := range tem.Filters {
mq.Tags = append(mq.Tags, filter)
}
}
alertQ := new(monitorapi.AlertQuery)
alertQ.Model = mq
alertQ.From = "60m"
commonAlert := monitorapi.CommonAlertQuery{
AlertQuery: alertQ,
Reduce: tem.Reduce,
Comparator: tem.Comparator,
Threshold: tem.Threshold,
Operator: tem.Operator,
}
if tem.FieldOpt != "" {
commonAlert.FieldOpt = monitorapi.CommonAlertFieldOpt_Division
}
if len(tem.ConditionType) != 0 {
commonAlert.ConditionType = tem.ConditionType
}
if len(tem.GroupBy) != 0 {
commonAlert.Model.GroupBy = append(commonAlert.Model.GroupBy, monitorapi.MetricQueryPart{
Type: "field",
Params: []string{tem.GroupBy},
})
}
return &commonAlert
}
var (
cpuTem = &CommonAlertTerm{
Operator: "or",
Database: "telegraf",
Measurement: "vm_cpu",
Field: []string{"usage_active"},
Comparator: ">=",
Reduce: "avg",
Threshold: 50,
Name: "lzx-test.cpu.usage_active",
Filters: []monitorapi.MetricQueryTag{
{
Key: "id",
Operator: "=",
Value: "a0eee5dd-3cfe-4ab1-8c79-aee1a8cf4dab",
},
},
}
memTem = &CommonAlertTerm{
Operator: "or",
Database: "telegraf",
Measurement: "vm_mem",
Field: []string{"used_percent"},
Comparator: ">=",
Reduce: "avg",
Threshold: 3,
Name: "lzx-test.mem.avaiable",
Filters: []monitorapi.MetricQueryTag{
{
Key: "id",
Operator: "=",
Value: "a0eee5dd-3cfe-4ab1-8c79-aee1a8cf4dab",
},
},
}
)
func init() {
cmd := NewResourceCmd(modules.CommonAlerts)
cmd.Create(new(options.CommonAlertCreateOptions))
@@ -28,4 +154,34 @@ func init() {
cmd.Perform("disable", &options.CommonAlertShowOptions{})
cmd.BatchDelete(new(options.CommonAlertDeleteOptions))
cmd.Perform("config", &options.CommonAlertUpdateOptions{})
type TestOpt struct {
NAME string
RobotIds []string
Users []string
}
R(&TestOpt{}, "monitor-commonalert-create-mul-test", "create test monitor common alert", func(s *mcclient.ClientSession, opt *TestOpt) error {
cpuQ := newCommonAlertQuery(cpuTem)
memQ := newCommonAlertQuery(memTem)
input := monitorapi.CommonAlertCreateInput{
CommonMetricInputQuery: monitorapi.CommonMetricInputQuery{
MetricQuery: []*monitorapi.CommonAlertQuery{
cpuQ,
memQ,
},
},
AlertCreateInput: monitorapi.AlertCreateInput{
Name: opt.NAME,
},
CommonAlertCreateBaseInput: monitorapi.CommonAlertCreateBaseInput{
Recipients: opt.Users,
RobotIds: opt.RobotIds,
Channel: []string{"webconsole"},
AlertType: monitorapi.CommonAlertNomalAlertType,
Scope: "system",
},
}
_, err := modules.CommonAlerts.Create(s, jsonutils.Marshal(input))
return err
})
}

View File

@@ -21,7 +21,6 @@ import (
api "yunion.io/x/onecloud/pkg/apis/notify"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules/notify"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/notify"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
@@ -42,17 +41,17 @@ func init() {
err error
)
if args.Oldsdk {
msg := notify.SNotifyMessage{
msg := modules.SNotifyMessage{
Uid: args.Receivers,
Robots: args.Robots,
ContactType: notify.TNotifyChannel(args.ContactType),
ContactType: modules.TNotifyChannel(args.ContactType),
Topic: args.TOPIC,
Priority: notify.TNotifyPriority(args.Priority),
Priority: modules.TNotifyPriority(args.Priority),
Msg: args.MESSAGE,
Remark: "",
Broadcast: false,
}
err = notify.Notifications.Send(s, msg)
err = modules.Notifications.Send(s, msg)
if err != nil {
return err
}

View File

@@ -12,18 +12,16 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package compute
package notify
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/notify"
options "yunion.io/x/onecloud/pkg/mcclient/options/notify"
)
func init() {
cmd := shell.NewResourceCmd(&modules.WafIPSetCaches)
cmd.List(&compute.WafIPSetCacheListOptions{})
cmd.Show(&options.BaseIdOptions{})
cmd.Delete(&options.BaseIdOptions{})
cmd := shell.NewResourceCmd(&modules.NotifyAction)
cmd.List(new(options.SNotifyActionListInput))
cmd.Create(new(options.SNotifyActionCreateInput))
}

View File

@@ -12,18 +12,16 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package compute
package notify
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options"
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/notify"
options "yunion.io/x/onecloud/pkg/mcclient/options/notify"
)
func init() {
cmd := shell.NewResourceCmd(&modules.WafRegexSetCaches)
cmd.List(&compute.WafRegexSetCacheListOptions{})
cmd.Show(&options.BaseIdOptions{})
cmd.Delete(&options.BaseIdOptions{})
cmd := shell.NewResourceCmd(&modules.NotifyResource)
cmd.List(new(options.SNotifyResourceListInput))
cmd.Create(new(options.SNotifyResourceCreateInput))
}

View File

@@ -25,4 +25,8 @@ func init() {
cmd.List(new(options.TopicListOptions))
cmd.Update(new(options.TopicUpdateOptions))
cmd.Show(new(options.TopicOptions))
cmd.Perform("add-action", new(options.STopicAddActionInput))
cmd.Perform("add-resource", new(options.STopicAddResourceInput))
cmd.Perform("remove-action", new(options.STopicAddActionInput))
cmd.Perform("remove-resource", new(options.STopicAddResourceInput))
}

View File

@@ -15,10 +15,15 @@
package yunionconf
import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/pkg/util/shellutils"
api "yunion.io/x/onecloud/pkg/apis/yunionconf"
"yunion.io/x/onecloud/pkg/httperrors"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules/identity"
"yunion.io/x/onecloud/pkg/mcclient/modules/yunionconf"
@@ -241,4 +246,100 @@ func init() {
printObject(parameter)
return nil
})
type ParameterCloneOptions struct {
User string `help:"Clone parameter of specificated user id"`
Service string `help:"Clone parameter of specificated service id"`
NAME string `help:"The name of parameter"`
DestUser string `help:"destination user id of clone action"`
DestService string `help:"destination service id of clone action"`
DestName string `help:"destination parameter name of clone action, may be empty"`
}
R(&ParameterCloneOptions{}, "parameter-clone", "clone parameter", func(s *mcclient.ClientSession, args *ParameterCloneOptions) error {
input := api.ParameterCloneInput{}
input.DestName = args.DestName
if len(args.DestUser) > 0 {
input.DestNs = api.NAMESPACE_USER
input.DestNsId = args.DestUser
} else if len(args.DestService) > 0 {
input.DestNs = api.NAMESPACE_SERVICE
input.DestNsId = args.DestService
} else {
return errors.Wrap(httperrors.ErrMissingParameter, "either dest_user or dest_service must be specified")
}
params := jsonutils.Marshal(input).(*jsonutils.JSONDict)
var parameter jsonutils.JSONObject
var err error
if len(args.User) > 0 {
parameter, err = yunionconf.Parameters.PerformActionInContext(s, args.NAME, "clone", params, &identity.UsersV3, args.User)
} else if len(args.Service) > 0 {
parameter, err = yunionconf.Parameters.PerformActionInContext(s, args.NAME, "clone", params, &identity.ServicesV3, args.Service)
} else {
parameter, err = yunionconf.Parameters.PerformAction(s, args.NAME, "clone", params)
}
if err != nil {
return err
}
printObject(parameter)
return nil
})
type ParameterCloneDashboardOptions struct {
SCOPE string `help:"dashboard scope" choices:"system|domain|project"`
SRC string `help:"source user id"`
DST string `help:"destination user id"`
}
R(&ParameterCloneDashboardOptions{}, "parameter-clone-dashboard", "clone dashboard parameter", func(s *mcclient.ClientSession, args *ParameterCloneDashboardOptions) error {
cloneUserParams := func(srcUid, destUid, name string) (jsonutils.JSONObject, error) {
paramId, err := yunionconf.Parameters.GetIdInContext(s, name, nil, &identity.UsersV3, srcUid)
if err != nil {
return nil, errors.Wrapf(err, "GetByName %s", name)
}
input := api.ParameterCloneInput{
DestNs: api.NAMESPACE_USER,
DestNsId: destUid,
}
params := jsonutils.Marshal(input).(*jsonutils.JSONDict)
return yunionconf.Parameters.PerformActionInContext(s, paramId, "clone", params, &identity.UsersV3, srcUid)
}
rootName := fmt.Sprintf("dashboard_%s", args.SCOPE)
confs := []struct {
Id string
Name string
}{}
paramObj, err := yunionconf.Parameters.GetInContext(s, rootName, nil, &identity.UsersV3, args.SRC)
if err != nil {
return errors.Wrap(err, "GetParameter")
}
err = paramObj.Unmarshal(&confs, "value")
if err != nil {
return errors.Wrap(err, "unmarshal value")
}
for _, conf := range confs {
_, err := cloneUserParams(args.SRC, args.DST, conf.Id)
if err != nil {
return errors.Wrapf(err, "clone %s", conf.Id)
}
fmt.Println("cloned", conf.Id)
}
// finally copy the root
_, err = cloneUserParams(args.SRC, args.DST, rootName)
if err != nil {
return errors.Wrapf(err, "clone %s", rootName)
}
fmt.Println("cloned", rootName)
return nil
})
}

View File

@@ -32,7 +32,7 @@ type BaseOptions struct {
Host string `help:"SSH Host IP" default:"$RAID_HOST" metavar:"RAID_HOST"`
Username string `help:"Username, usually root" default:"$RAID_USERNAME" metavar:"RAID_USERNAME"`
Password string `help:"Password" default:"$RAID_PASSWORD" metavar:"RAID_PASSWORD"`
Driver string `help:"Raid dirver" default:"$RAID_DRIVER" metavar:"RAID_DRIVER" choices:"MegaRaid|HPSARaid|Mpt2SAS|MarvelRaid"`
Driver string `help:"Raid driver" default:"$RAID_DRIVER" metavar:"RAID_DRIVER" choices:"MegaRaid|HPSARaid|Mpt2SAS|MarvelRaid"`
LocalHost bool `help:"Run raidcli in localhost"`
SUBCOMMAND string `help:"s3cli subcommand" subcommand:"true"`
}

110
go.mod
View File

@@ -1,13 +1,12 @@
module yunion.io/x/onecloud
go 1.18
go 1.21
require (
bazil.org/fuse v0.0.0-20180421153158-65cc252bf669
github.com/360EntSecGroup-Skylar/excelize v1.4.0
github.com/LeeEirc/terminalparser v0.0.0-20220328021224-de16b7643ea4
github.com/LeeEirc/terminalparser v0.0.0-20240205084113-fbf78c8480f2
github.com/aliyun/alibaba-cloud-sdk-go v1.61.684
github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778
github.com/anacrolix/torrent v0.0.0-20181129073333-cc531b8c4a80
github.com/benbjohnson/clock v1.0.0
github.com/bitly/go-simplejson v0.5.0
@@ -24,7 +23,7 @@ require (
github.com/golang-plus/uuid v1.0.0
github.com/golang/mock v1.4.4
github.com/google/gopacket v1.1.17
github.com/google/uuid v1.3.0
github.com/google/uuid v1.6.0
github.com/googollee/go-socket.io v0.0.0-20181214084611-0ad7206c347a
github.com/gorilla/mux v1.7.0
github.com/gorilla/websocket v1.4.1
@@ -38,10 +37,10 @@ require (
github.com/lestrrat-go/jwx v1.0.2
github.com/lestrrat/go-jwx v0.0.0-20180221005942-b7d4802280ae
github.com/libvirt/libvirt-go-xml v5.2.0+incompatible
github.com/mattn/go-sqlite3 v1.14.12
github.com/mattn/go-sqlite3 v1.14.19
github.com/mdlayher/arp v0.0.0-20190313224443-98a83c8a2717
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7
github.com/mdlayher/raw v0.0.0-20190606144222-a54781e5f38f
github.com/mdlayher/packet v1.1.2
github.com/mholt/caddy v0.10.11
github.com/miekg/dns v1.1.25
github.com/minio/minio-go v6.0.14+incompatible
@@ -58,27 +57,27 @@ require (
github.com/sirupsen/logrus v1.9.0
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9
github.com/smartystreets/goconvey v1.7.2
github.com/stretchr/testify v1.8.1
github.com/stretchr/testify v1.9.0
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e
github.com/tjfoc/gmsm v1.4.1
github.com/tredoe/osutil/v2 v2.0.0-rc.16
github.com/tredoe/osutil v1.5.0
github.com/vishvananda/netlink v1.1.0
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74
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
github.com/zexi/influxql-to-metricsql v0.0.6
github.com/zexi/influxql-to-metricsql v0.1.0
go.etcd.io/etcd/api/v3 v3.5.0
go.etcd.io/etcd/client/v3 v3.5.0
golang.org/x/crypto v0.8.0
golang.org/x/net v0.9.0
golang.org/x/sync v0.1.0
golang.org/x/sys v0.9.0
golang.org/x/text v0.9.0
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
golang.org/x/crypto v0.19.0
golang.org/x/net v0.21.0
golang.org/x/sync v0.6.0
golang.org/x/sys v0.17.0
golang.org/x/text v0.14.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.38.0
google.golang.org/protobuf v1.27.1
google.golang.org/grpc v1.62.0
google.golang.org/protobuf v1.32.0
gopkg.in/fatih/set.v0 v0.2.1
gopkg.in/ldap.v3 v3.0.3
gopkg.in/mail.v2 v2.3.1
@@ -89,20 +88,23 @@ require (
k8s.io/cluster-bootstrap v0.19.3
k8s.io/cri-api v0.22.17
moul.io/http2curl/v2 v2.3.0
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240407070842-c86e783a71ae
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32
yunion.io/x/jsonutils v1.0.1-0.20240203102553-4096f103b401
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20241231161259-655e77daa48e
yunion.io/x/executor v0.0.0-20241205080005-48f5b1212256
yunion.io/x/jsonutils v1.0.1-0.20240930100528-1671a2d0d22f
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.1-0.20240407074633-3b5e6127232f
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e
yunion.io/x/sqlchemy v1.1.3-0.20240326090913-96da8bf92408
yunion.io/x/pkg v1.10.2
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1
yunion.io/x/sqlchemy v1.1.3-0.20240926163039-d41512b264e1
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c
)
require (
cloud.google.com/go v0.65.0 // indirect
cloud.google.com/go/storage v1.10.0 // indirect
cloud.google.com/go v0.112.1 // indirect
cloud.google.com/go/compute v1.24.0 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
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/Azure/azure-sdk-for-go v36.1.0+incompatible // indirect
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
@@ -128,6 +130,7 @@ require (
github.com/anacrolix/log v0.0.0-20180808012509-286fcf906b48 // indirect
github.com/anacrolix/missinggo v0.0.0-20181129073415-3237bf955fed // indirect
github.com/anacrolix/mmsg v0.0.0-20180808012353-5adb2c1127c0 // indirect
github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778 // indirect
github.com/anacrolix/utp v0.0.0-20180219060659-9e0e1d1d0572 // indirect
github.com/aokoli/goutils v1.0.1 // indirect
github.com/apache/thrift v0.13.0 // indirect
@@ -140,7 +143,7 @@ require (
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.1.2 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect
github.com/coreos/go-semver v0.3.0 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
@@ -156,12 +159,14 @@ require (
github.com/elgatito/upnp v0.0.0-20180711183757-2f244d205f9a // indirect
github.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710 // indirect
github.com/fatih/color v1.13.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 // indirect
github.com/frankban/quicktest v1.14.3 // indirect
github.com/gin-contrib/sse v0.1.0 // indirect
github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 // indirect
github.com/go-logfmt/logfmt v0.5.0 // indirect
github.com/go-logr/logr v0.4.0 // indirect
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-playground/locales v0.13.0 // indirect
github.com/go-playground/universal-translator v0.17.0 // indirect
@@ -170,13 +175,15 @@ require (
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-20200121045136-8c9f03a8e57e // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/golang/snappy v0.0.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/btree v1.0.1 // indirect
github.com/google/go-querystring v1.0.0 // indirect
github.com/google/gofuzz v1.1.0 // indirect
github.com/googleapis/gax-go/v2 v2.0.5 // 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-20181017120253-0766667cb4d1 // indirect
@@ -186,8 +193,8 @@ require (
github.com/imdario/mergo v0.3.6 // indirect
github.com/jdcloud-api/jdcloud-sdk-go v1.55.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/josharian/native v1.1.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/jstemmer/go-junit-report v0.9.1 // indirect
github.com/jtolds/gls v4.20.0+incompatible // indirect
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect
github.com/kr/fs v0.1.0 // indirect
@@ -202,6 +209,8 @@ require (
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.1 // 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
github.com/minio/minio-go/v6 v6.0.33 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
@@ -233,7 +242,7 @@ require (
github.com/smartystreets/assertions v1.2.0 // indirect
github.com/spaolacci/murmur3 v1.1.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stretchr/objx v0.5.0 // indirect
github.com/stretchr/objx v0.5.2 // 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
@@ -241,7 +250,8 @@ require (
github.com/tklauser/go-sysconf v0.3.10 // indirect
github.com/tklauser/numcpus v0.4.0 // indirect
github.com/ugorji/go/codec v1.1.7 // indirect
github.com/vmware/govmomi v0.20.1 // indirect
github.com/ulikunitz/xz v0.5.12 // indirect
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.9 // indirect
@@ -250,25 +260,33 @@ require (
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.0 // indirect
go.opencensus.io v0.22.4 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 // indirect
go.opentelemetry.io/otel v1.23.0 // indirect
go.opentelemetry.io/otel/metric v1.23.0 // indirect
go.opentelemetry.io/otel/trace v1.23.0 // indirect
go.uber.org/atomic v1.7.0 // indirect
go.uber.org/multierr v1.6.0 // indirect
go.uber.org/zap v1.17.0 // indirect
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
golang.org/x/mod v0.8.0 // indirect
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c // indirect
golang.org/x/term v0.7.0 // indirect
golang.org/x/tools v0.6.0 // indirect
google.golang.org/api v0.30.0 // indirect
google.golang.org/appengine v1.6.6 // indirect
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect
golang.org/x/oauth2 v0.17.0 // indirect
golang.org/x/term v0.17.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
google.golang.org/genproto/googleapis/api v0.0.0-20240304161311-37d4d3c04a78 // indirect
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/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // 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/klog/v2 v2.2.0 // indirect
k8s.io/klog/v2 v2.20.0 // indirect
k8s.io/utils v0.0.0-20200729134348-d5654de09c73 // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.0.1 // indirect
sigs.k8s.io/yaml v1.2.0 // indirect
)
replace github.com/influxdata/promql/v2 => github.com/zexi/promql/v2 v2.12.1
replace github.com/Azure/azure-sdk-for-go => github.com/Azure/azure-sdk-for-go v36.1.0+incompatible

207
go.sum
View File

@@ -15,16 +15,23 @@ cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bP
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
cloud.google.com/go v0.65.0 h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8=
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM=
cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg=
cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40=
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc=
cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
@@ -33,14 +40,14 @@ cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiy
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA=
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
cloud.google.com/go/storage v1.39.1 h1:MvraqHKhogCOTXTlct/9C3K3+Uy2jBmFYb3/Sp6dVtY=
cloud.google.com/go/storage v1.39.1/go.mod h1:xK6xZmxZmo+fyP7+DEF6FhNc24/JAe95OLyOHCXFH1o=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
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/azure-sdk-for-go v5.0.0-beta.0.20161118192335-3b1282355199+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
github.com/Azure/azure-sdk-for-go v36.1.0+incompatible h1:smHlbChr/JDmsyUqELZXLs0YIgpXecIGdUibuc2983s=
github.com/Azure/azure-sdk-for-go v36.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
@@ -66,6 +73,7 @@ github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxB
github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc=
github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE=
github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY=
github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k=
@@ -78,8 +86,8 @@ github.com/DataDog/dd-trace-go v0.6.1 h1:nsZ2lohbSw1CKtfNRu3wPh1jFirv6XSz8vqNpuI
github.com/DataDog/dd-trace-go v0.6.1/go.mod h1:SmQTTcC37XMyEm75HV0AWiZIYxDiaNhRi49zorIpW+o=
github.com/DataDog/zstd v1.3.4 h1:LAGHkXuvC6yky+C2CUG2tD7w8QlrUwpue8XwIh0X4AY=
github.com/DataDog/zstd v1.3.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
github.com/LeeEirc/terminalparser v0.0.0-20220328021224-de16b7643ea4 h1:Gk7m4Nu2jqVqJAJqNlTYqkiq96WkANAtB4fVi+t7Xv8=
github.com/LeeEirc/terminalparser v0.0.0-20220328021224-de16b7643ea4/go.mod h1:tiLv6VBLH4Z3KdBSe2qIKRwQDGCVQ9/F5fOKpQGvyoA=
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/azure-vhd-utils v0.0.0-20181115010904-44cbada2ece3 h1:gImoAO1xAcC1oDlYmD/X7dggsodGf2DFJOVE5m0ssms=
github.com/Microsoft/azure-vhd-utils v0.0.0-20181115010904-44cbada2ece3/go.mod h1:u0H9gMieFLxkUy8RS0X8VbFWyPs2815qQAaitRbj6x0=
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
@@ -152,6 +160,7 @@ github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevB
github.com/aws/aws-sdk-go v1.39.0 h1:74BBwkEmiqBbi2CGflEh34l0YNtIibTjZsibGarkNjo=
github.com/aws/aws-sdk-go v1.39.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f h1:ZNv7On9kyUzm7fvRZumSyy/IUiSC7AzL0I1jKKtwooA=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
github.com/basgys/goxml2json v1.1.1-0.20181031222924-996d9fc8d313 h1:fKPpQHBQgt4dQuG6x+yH4gdgtodFDgN9rvHzwJzTKeg=
github.com/basgys/goxml2json v1.1.1-0.20181031222924-996d9fc8d313/go.mod h1:wH7a5Np/Q4QoECFIU8zTQlZwZkrilY0itPfecMw41Dw=
github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs=
@@ -180,8 +189,9 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
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/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=
@@ -192,6 +202,8 @@ github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY
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/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/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=
@@ -211,6 +223,7 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
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/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
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/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
@@ -236,12 +249,16 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
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=
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710 h1:QdyRyGZWLEvJG5Kw3VcVJvhXJ5tZ1MkRgqpJOEZSySM=
github.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710/go.mod h1:eNde4IQyEiA5br02AouhEHCu3p3UzrCdFR4LuQHklMI=
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fernet/fernet-go v0.0.0-20180830025343-9eac43b88a5e h1:P10tZmVD2XclAaT9l7OduMH1OLFzTa1wUuUqHZnEdI0=
github.com/fernet/fernet-go v0.0.0-20180830025343-9eac43b88a5e/go.mod h1:2H9hjfbpSMHwY503FclkV/lZTBh2YlOmLLSda12uL8c=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
@@ -276,8 +293,12 @@ github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
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 v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
github.com/go-logr/logr v0.4.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.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=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
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=
@@ -310,13 +331,15 @@ github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptG
github.com/golang-plus/errors v1.0.0 h1:9Rh4itnph6OYO7wm9u3FUTLMFMKCoL07+bLiYKELxWw=
github.com/golang-plus/errors v1.0.0/go.mod h1:YTFZjOTBcUFieeZe4q+7Umfu/sceSr3XQyBIkTkzpd8=
github.com/golang-plus/testing v1.0.0 h1:azmFWFV44LHK/j/jAkNTbzB2G2b6HdmqF358r73m8kg=
github.com/golang-plus/testing v1.0.0/go.mod h1:psANDlKPZ0ycedUzCS0Trf8h98sFyOyB51FlqyU+Ltc=
github.com/golang-plus/uuid v1.0.0 h1:ga84hG89vda++AGpup4N/cbfbM3O4d3R5ON9/jcN6AY=
github.com/golang-plus/uuid v1.0.0/go.mod h1:pBDDRrdgRHHqyYlj1d1i2gwyBq62Zc+sP2cDiCDkBLI=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
@@ -340,11 +363,13 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
@@ -357,12 +382,14 @@ 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.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.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
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-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
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=
@@ -373,8 +400,9 @@ github.com/google/gopacket v1.1.17 h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbB
github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/martian/v3 v3.0.0 h1:pMen7vLs8nvgEYhywH3KDWJIJTeEr2ULsVWHWYHQyBs=
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw=
github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
@@ -383,13 +411,19 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs=
github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM=
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=
@@ -430,8 +464,6 @@ 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=
github.com/influxdata/influxql v1.1.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=
github.com/influxdata/promql/v2 v2.12.0 h1:kXn3p0D7zPw16rOtfDR+wo6aaiH8tSMfhPwONTxrlEc=
github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8=
github.com/ipandtcp/godingtalk v0.0.0-20180410032244-ca3d6ac197fb/go.mod h1:3umLciE1jBnh2LgrL15R2zbEe+HVPRZXnlSjjb/dYiw=
github.com/jaypipes/ghw v0.11.0 h1:i0pKvAM7eZk0KvLm9vzpcpDKTRnfR6AQ5pFkPVnYJXU=
github.com/jaypipes/ghw v0.11.0/go.mod h1:jeJGbkRB2lL3/gxYzNYzEDETV1ZJ56OKr+CSeSEym+g=
@@ -444,6 +476,8 @@ 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/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=
github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
@@ -453,7 +487,6 @@ github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
@@ -518,8 +551,8 @@ github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
github.com/mattn/go-sqlite3 v1.7.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0=
github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
github.com/mattn/go-sqlite3 v1.14.19 h1:fhGleo2h1p8tVChob4I9HpmVFIAkKGpiukdrgQbWfGI=
github.com/mattn/go-sqlite3 v1.14.19/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
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=
@@ -530,10 +563,13 @@ github.com/mdlayher/arp v0.0.0-20190313224443-98a83c8a2717/go.mod h1:eOj1DDj3NAZ
github.com/mdlayher/ethernet v0.0.0-20190313224307-5b5fc417d966/go.mod h1:5s5p/sMJ6sNsFl6uCh85lkFGV8kLuIYJCRJLavVJwvg=
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7 h1:lez6TS6aAau+8wXUP3G9I3TGlmPFEq2CTxBaRqY6AGE=
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQobyTjI/tJyq2HG+i/dfSoFUt8/aZCM+GKtmFk/Y=
github.com/mdlayher/packet v1.1.2 h1:3Up1NG6LZrsgDVn6X4L9Ge/iyRyxFEFD9o6Pr3Q1nQY=
github.com/mdlayher/packet v1.1.2/go.mod h1:GEu1+n9sG5VtiRE4SydOmX5GTwyyYlteZiFU+x0kew4=
github.com/mdlayher/raw v0.0.0-20190313224157-43dbcdd7739d/go.mod h1:r1fbeITl2xL/zLbVnNHFyOzQJTgr/3fpf1lJX/cjzR8=
github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18 h1:zwOa3e/13D6veNIz6zzuqrd3eZEMF0dzD0AQWKcYSs4=
github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
github.com/mdlayher/raw v0.0.0-20190606144222-a54781e5f38f h1:Xjvm7UTnKTwrlhbs+8qA6I0v1iX77rY3QxftSgvOVRk=
github.com/mdlayher/raw v0.0.0-20190606144222-a54781e5f38f/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/mholt/caddy v0.10.11 h1:s8X+R8DuBbrrMuUTcWSxlDe567B0s5EDmiDBKSYsioY=
@@ -640,8 +676,9 @@ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8=
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
@@ -670,7 +707,6 @@ github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
github.com/smartystreets/gunit v0.0.0-20180314194857-6f0d6275bdcd/go.mod h1:XUKj4gbqj2QvJk/OdLWzyZ3FYli0f+MdpngyryX0gcw=
@@ -684,8 +720,9 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
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=
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
@@ -694,8 +731,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
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/syncthing/syncthing v0.14.48-rc.4/go.mod h1:nw3siZwHPA6M8iSfjDCWQ402eqvEIasMQOE8nFOxy7M=
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=
@@ -715,20 +753,22 @@ github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03O
github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk=
github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o=
github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ=
github.com/tredoe/osutil/v2 v2.0.0-rc.16 h1:5A2SKvyB2c3lhPYUIHyFtu6jbaXlaA3Hu5gWIam8Pik=
github.com/tredoe/osutil/v2 v2.0.0-rc.16/go.mod h1:uLRVx/3pb7Y4RQhG8cQFbPE9ha5r81e6MXpBsxbTAYc=
github.com/tredoe/osutil v1.5.0 h1:UGVxbbHRoZi8xXVmbNZ2vgG6XoJ15ndE4LniiQ3rJKg=
github.com/tredoe/osutil v1.5.0/go.mod h1:TEzphzUUunysbdDRfdOgqkg10POQbnfIPV50ynqOfIg=
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 h1:gga7acRE695APm9hlsSMoOoE65U4/TcqNj90mc69Rlg=
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601 h1:eELqkILRCR0kkoFujWv/hGyn+KfpGjHY01Rl1p42CBg=
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI=
github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
github.com/vmware/govmomi v0.20.1 h1:7b/SeTUB3tER8ZLGLLLH3xcnB2xeuLULXmfPFqPSRZA=
github.com/vmware/govmomi v0.20.1/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
github.com/vmware/govmomi v0.37.1 h1:SpI+Ofq+lC1zsLcJ9szLSb7fL4TypReVvUoWIgk2b6U=
github.com/vmware/govmomi v0.37.1/go.mod h1:mtGWtM+YhTADHlCgJBiskSRPOZRsN9MSjPzaZLte/oQ=
github.com/volcengine/ve-tos-golang-sdk/v2 v2.6.2 h1:FZ7zrUf70YKVuES50mHO3z2VW0K+Arq4uGlDqb+1VA0=
github.com/volcengine/ve-tos-golang-sdk/v2 v2.6.2/go.mod h1:IrjK84IJJTuOZOTMv/P18Ydjy/x+ow7fF7q11jAxXLM=
github.com/volcengine/volc-sdk-golang v1.0.23 h1:anOslb2Qp6ywnsbyq9jqR0ljuO63kg9PY+4OehIk5R8=
@@ -753,8 +793,10 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/zexi/influxql-to-metricsql v0.0.6 h1:E16T4oqgjIJtSNVvhGGHnw+pmY3yGz2iRsmmmSVuOpY=
github.com/zexi/influxql-to-metricsql v0.0.6/go.mod h1:PyRRM+3Zrzzig6J4okYLeSv+/d+5GaL5ccBaUKQABNs=
github.com/zexi/influxql-to-metricsql v0.1.0 h1:gSXhnYEu16fHNs5e1NSdNYceKdlKjMijTHEpnnMVYN4=
github.com/zexi/influxql-to-metricsql v0.1.0/go.mod h1:JlC5FY+6De9ZPxG47G5DOgva8P9X1VaKS4ExzCmhSCc=
github.com/zexi/promql/v2 v2.12.1 h1:crHKpULdLLsBZ9b78Rg6qQkugzlk6BHeCj93tw/F5RU=
github.com/zexi/promql/v2 v2.12.1/go.mod h1:2UtzWZGmth95n2qdIZWpJ5yQ0cE5hEvz0dGsajI1Sqg=
go.etcd.io/etcd/api/v3 v3.5.0 h1:GsV3S+OfZEOCNXdtNkBSR7kgLobAa/SO6tCxRa0GAYw=
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
go.etcd.io/etcd/client/pkg/v3 v3.5.0 h1:2aQv6F436YnN7I4VbI8PPYrBhu+SmrTaADcf8Mi/6PU=
@@ -765,8 +807,21 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto=
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 h1:P+/g8GpuJGYbOp2tAdKrIPUX9JO02q8Q0YNlHolpibA=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0/go.mod h1:tIKj3DbO8N9Y2xo52og3irLsPI4GW02DSMtrVgNMgxg=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 h1:doUP+ExOpH3spVTLS0FcWGLnQrPct/hD/bCPbDRUEAU=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0/go.mod h1:rdENBZMT2OE6Ne/KLwpiXudnAsbdrdBaqBvTN8M8BgA=
go.opentelemetry.io/otel v1.23.0 h1:Df0pqjqExIywbMCMTxkAwzjLZtRf+bBKLbUcpxO2C9E=
go.opentelemetry.io/otel v1.23.0/go.mod h1:YCycw9ZeKhcJFrb34iVSkyT0iczq/zYDtZYFufObyB0=
go.opentelemetry.io/otel/metric v1.23.0 h1:pazkx7ss4LFVVYSxYew7L5I6qvLXHA0Ap2pwV+9Cnpo=
go.opentelemetry.io/otel/metric v1.23.0/go.mod h1:MqUW2X2a6Q8RN96E2/nqNoT+z9BSms20Jb7Bbp+HiTo=
go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw=
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.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
@@ -787,8 +842,9 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ=
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
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=
@@ -813,7 +869,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
@@ -826,7 +881,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -872,15 +926,17 @@ golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
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=
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI=
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ=
golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -893,8 +949,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
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-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180724212812-e072cadbbdc8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
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=
@@ -928,7 +985,6 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/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=
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -962,14 +1018,15 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.1.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.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
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.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
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=
@@ -978,16 +1035,18 @@ golang.org/x/text v0.3.3/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=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.4.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 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
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/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
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-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/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-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1038,13 +1097,13 @@ golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU=
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230215201556-9c5414ab4bde h1:ybF7AMzIUikL9x4LgwEmzhXtzRpKNqngme1VGDWz+Nk=
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230215201556-9c5414ab4bde/go.mod h1:mQqgjkW8GQQcJQsbBvK890TKqUK1DfKWkuBGbOkuMHQ=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
@@ -1063,16 +1122,18 @@ google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
google.golang.org/api v0.30.0 h1:yfrXXP61wVuLb0vBcG6qaOoIoqYEzOQS8jum51jkv2w=
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
google.golang.org/api v0.167.0 h1:CKHrQD1BLRii6xdkatBDXyKzM0mkawt2QP+H3LtPmSE=
google.golang.org/api v0.167.0/go.mod h1:4FcBc686KFi7QI/U51/2GKKevfZMpM17sCdibqe/bSA=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.4/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc=
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
@@ -1103,8 +1164,13 @@ 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-20210602131652-f16073e35f0c h1:wtujag7C+4D6KMoulW9YauvK2lgdvCMS260jsqqBXr0=
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=
google.golang.org/genproto/googleapis/api v0.0.0-20240304161311-37d4d3c04a78 h1:SzXBGiWM1LNVYLCRP3e0/Gsze804l4jGoJ5lYysEO5I=
google.golang.org/genproto/googleapis/api v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 h1:DKU1r6Tj5s1vlU/moGhuGz7E3xRfwjdAfDzbsaQJtEY=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -1119,8 +1185,10 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
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.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
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=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@@ -1133,8 +1201,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 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
@@ -1195,8 +1263,9 @@ k8s.io/cri-api v0.22.17 h1:lUY0gpQXQl1hFDMbuYb+eB94Vu/8QoLKYCb8ACnpAHE=
k8s.io/cri-api v0.22.17/go.mod h1:uAw9CICQq20/1yB4ZnWT2TjJyMMROl4typFfWaURLwQ=
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 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
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/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg=
k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
@@ -1210,13 +1279,13 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK
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.20240407070842-c86e783a71ae h1:R/PRTt4DaAHTSQh1K6+p131HKt6SRzwLiw5u8TgIB/w=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240407070842-c86e783a71ae/go.mod h1:dsUESXIbXJ+/ywbNClhldOrbPOiBi2udrgOnB/ffoWk=
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32 h1:v7POYkQwo1XzOxBoIoRVr/k0V9Y5JyjpshlIFa9raug=
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20241231161259-655e77daa48e h1:EzO1fhJG5Mp7mfoVpqzMwesTUNTMD8gHH3blbS6uGRo=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20241231161259-655e77daa48e/go.mod h1:KQ/jWx7bZlmjCE711KEWuvHW/dzpdr/UTlBjjutkj0Y=
yunion.io/x/executor v0.0.0-20241205080005-48f5b1212256 h1:kLKQ6zbgPDQflRwoHFAjxNChcbhXIFgsUVLkJwiXu/8=
yunion.io/x/executor v0.0.0-20241205080005-48f5b1212256/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.20240203102553-4096f103b401 h1:4l6ELFSQ0MBVInscZ8/yOtSWF0cwH5BT1ATN6dCtAqc=
yunion.io/x/jsonutils v1.0.1-0.20240203102553-4096f103b401/go.mod h1:VK4Z93dgiKgAijcSqbMKmGaBMJuHulR16Hz4K015ZPo=
yunion.io/x/jsonutils v1.0.1-0.20240930100528-1671a2d0d22f h1:N7V0uLqX9mED1HEPeIKcYpkWglnHL5hyn4ENX+VBeqM=
yunion.io/x/jsonutils v1.0.1-0.20240930100528-1671a2d0d22f/go.mod h1:VK4Z93dgiKgAijcSqbMKmGaBMJuHulR16Hz4K015ZPo=
yunion.io/x/log v0.0.0-20190514041436-04ce53b17c6b/go.mod h1:+gauLs73omeJAPlsXcevLsJLKixV+sR/E7WSYTSx1fE=
yunion.io/x/log v0.0.0-20190629062853-9f6483a7103d/go.mod h1:LC6f/4FozL0iaAbnFt2eDX9jlsyo3WiOUPm03d7+U4U=
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91 h1:inY5o3LDa/zgsIZuPN0HmpzKIsu/lLgsBmMttuDPGj4=
@@ -1225,11 +1294,11 @@ 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.1-0.20240407074633-3b5e6127232f h1:5ER9TICQiiLA0klflIRkEuhTUpGaEKaSDKur8BJ96Vg=
yunion.io/x/pkg v1.10.1-0.20240407074633-3b5e6127232f/go.mod h1:ksCJVQ+DwKrJ5QBEoU8pzrDFfDaZVAFH/iJ6yQCYxJk=
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e h1:v+EzIadodSwkdZ/7bremd7J8J50Cise/HCylsOJngmo=
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e/go.mod h1:0iFKpOs1y4lbCxeOmq3Xx/0AcQoewVPwj62eRluioEo=
yunion.io/x/sqlchemy v1.1.3-0.20240326090913-96da8bf92408 h1:TmkgsnVG/KsUfxaFxaYEhQs0o4nXc9fFFlqZv6mwZ/E=
yunion.io/x/sqlchemy v1.1.3-0.20240326090913-96da8bf92408/go.mod h1:5W8ghvJ4TNt/r2yDjjD3i4QsZgIiJX45dhRQBGWPHsQ=
yunion.io/x/pkg v1.10.2 h1:oZhedvlvDsebIWcOvrOMJQ31SxzjxxqUXUBYseBjh7w=
yunion.io/x/pkg v1.10.2/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.20240926163039-d41512b264e1 h1:HWPqY1I5JSmM6Sks6FyK9hnq/MjL7FDghM6M8DXHob0=
yunion.io/x/sqlchemy v1.1.3-0.20240926163039-d41512b264e1/go.mod h1:vCIZpqhZ5Jzaq3tFyrti/vv8BijQKtkzSgNT/uH4H5A=
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c h1:QuLab2kSRECZRxo4Lo2KcYn6XjQFDGaZ1+x0pYDVVwQ=
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c/go.mod h1:EP6NSv2C0zzqBDTKumv8hPWLb3XvgMZDHQRfyuOrQng=

File diff suppressed because it is too large Load Diff

View File

@@ -44,7 +44,7 @@
{
"id": "The IDP of user has been disabled or in invalid status",
"message": "The IDP of user has been disabled or in invalid status",
"translation": ""
"translation": "用户已经被禁用或处于不可用状态"
},
{
"id": "invalid credential",
@@ -331,11 +331,6 @@
"message": "row %d duplicate name %s",
"translation": "第%d行名称重复%s"
},
{
"id": "template_id",
"message": "template_id",
"translation": ""
},
{
"id": "template not found %s",
"message": "template not found %s",
@@ -386,11 +381,6 @@
"message": "syslog webservice not enabled",
"translation": "syslog服务未启用"
},
{
"id": "sync error",
"message": "sync error",
"translation": ""
},
{
"id": "invalid CannedAction %s ",
"message": "invalid CannedAction %s ",
@@ -616,6 +606,26 @@
"message": "invalid redirect_host %s",
"translation": "输入的 redirect_host %s 异常"
},
{
"id": "negative tail lines",
"message": "negative tail lines",
"translation": ""
},
{
"id": "limit_bytes must be greater than zero",
"message": "limit_bytes must be greater than zero",
"translation": ""
},
{
"id": "at most one of since_time or since_seconds must be specified",
"message": "at most one of since_time or since_seconds must be specified",
"translation": ""
},
{
"id": "since_seconds must be greater than zero",
"message": "since_seconds must be greater than zero",
"translation": ""
},
{
"id": "missing tags",
"message": "missing tags",
@@ -672,9 +682,9 @@
"translation": "无效的handler%s"
},
{
"id": "Handler not found",
"message": "Handler not found",
"translation": "未找到handler"
"id": "Handler %s not found",
"message": "Handler %s not found",
"translation": ""
},
{
"id": "No request key: %s",
@@ -866,6 +876,16 @@
"message": "not enough privilege to do %s:%s:%s (require:%s,allow:%s,query:%s)",
"translation": "权限不够 %s:%s:%s (require:%s,allow:%s,query:%s)"
},
{
"id": "only sysadmin can clean history data",
"message": "only sysadmin can clean history data",
"translation": "只有管理员允许清理历史数据"
},
{
"id": "invalid input json",
"message": "invalid input json",
"translation": ""
},
{
"id": "Not support resource %s tag filter",
"message": "Not support resource %s tag filter",
@@ -891,6 +911,16 @@
"message": "Query database error %s",
"translation": "数据库查询出错:%s"
},
{
"id": "invalid extra_resource %s",
"message": "invalid extra_resource %s",
"translation": ""
},
{
"id": "resource %s does not have field %s",
"message": "resource %s does not have field %s",
"translation": "资源%s没有%s字段"
},
{
"id": "table %s not found",
"message": "table %s not found",
@@ -1186,6 +1216,181 @@
"message": "invalid cert pubkey algorithm: %s, want %s",
"translation": "无效的证书算法:%s要求为%s"
},
{
"id": "host is nil",
"message": "host is nil",
"translation": ""
},
{
"id": "host_path is empty",
"message": "host_path is empty",
"translation": ""
},
{
"id": "container_path is empty",
"message": "container_path is empty",
"translation": ""
},
{
"id": "permissions is empty",
"message": "permissions is empty",
"translation": ""
},
{
"id": "wrong permission %s",
"message": "wrong permission %s",
"translation": ""
},
{
"id": "isolated_device is nil",
"message": "isolated_device is nil",
"translation": ""
},
{
"id": "one of index or id is required",
"message": "one of index or id is required",
"translation": ""
},
{
"id": "index is less than 0",
"message": "index is less than 0",
"translation": ""
},
{
"id": "can't specify id %s when creating pod",
"message": "can't specify id %s when creating pod",
"translation": ""
},
{
"id": "index is required",
"message": "index is required",
"translation": ""
},
{
"id": "disk.index %d is large than disk size %d",
"message": "disk.index %d is large than disk size %d",
"translation": ""
},
{
"id": "index %d is large than isolated device size %d",
"message": "index %d is large than isolated device size %d",
"translation": ""
},
{
"id": "id is empty",
"message": "id is empty",
"translation": ""
},
{
"id": "device type %s is not supported by container",
"message": "device type %s is not supported by container",
"translation": ""
},
{
"id": "not found pod device by %s",
"message": "not found pod device by %s",
"translation": ""
},
{
"id": "exec field",
"message": "exec field",
"translation": ""
},
{
"id": "command is required",
"message": "command is required",
"translation": ""
},
{
"id": "disk is nil",
"message": "disk is nil",
"translation": ""
},
{
"id": "disk.id is empty",
"message": "disk.id is empty",
"translation": ""
},
{
"id": "not found pod disk by %s",
"message": "not found pod disk by %s",
"translation": ""
},
{
"id": "can't specify disk_id %s when creating pod",
"message": "can't specify disk_id %s when creating pod",
"translation": ""
},
{
"id": "disk.index is required",
"message": "disk.index is required",
"translation": ""
},
{
"id": "disk.index %d is less than 0",
"message": "disk.index %d is less than 0",
"translation": ""
},
{
"id": "valid overlay %v",
"message": "valid overlay %v",
"translation": ""
},
{
"id": "invalid overlay input: %v",
"message": "invalid overlay input: %v",
"translation": ""
},
{
"id": "lower_dir is required",
"message": "lower_dir is required",
"translation": ""
},
{
"id": "empty %d dir",
"message": "empty %d dir",
"translation": ""
},
{
"id": "can't use '/' as lower_dir",
"message": "can't use '/' as lower_dir",
"translation": ""
},
{
"id": "disk %s must have template_id",
"message": "disk %s must have template_id",
"translation": ""
},
{
"id": "disk %#v must have image_id",
"message": "disk %#v must have image_id",
"translation": ""
},
{
"id": "host_path is nil",
"message": "host_path is nil",
"translation": ""
},
{
"id": "unsupported type %s",
"message": "unsupported type %s",
"translation": ""
},
{
"id": "path is required",
"message": "path is required",
"translation": ""
},
{
"id": "content",
"message": "content",
"translation": ""
},
{
"id": "text is nil",
"message": "text is nil",
"translation": ""
},
{
"id": "cannot support more than 1 nic",
"message": "cannot support more than 1 nic",
@@ -1241,6 +1446,11 @@
"message": "Invalid raid config: %v",
"translation": "无效的RAID配置%v"
},
{
"id": "Invalid root disk matcher: %v",
"message": "Invalid root disk matcher: %v",
"translation": ""
},
{
"id": "Host %s is not a baremetal",
"message": "Host %s is not a baremetal",
@@ -1274,7 +1484,7 @@
{
"id": "Memory size %q must be number[+unit], like 256M, 1G or 256",
"message": "Memory size %q must be number[+unit], like 256M, 1G or 256",
"translation": ""
"translation": "内存大小%q必须是数字或数字单位组合, 例如 256M, 1G 或者 256"
},
{
"id": "Params vmem_size parse error",
@@ -1292,24 +1502,14 @@
"translation": "不能缩小第%d块磁盘大小"
},
{
"id": "Cann't online resize root disk",
"message": "Cann't online resize root disk",
"translation": "不支持在线扩容系统盘"
"id": "CloudpodsBaremetal %s is not ready",
"message": "CloudpodsBaremetal %s is not ready",
"translation": ""
},
{
"id": "Cannot resize disk when guest in status %s",
"message": "Cannot resize disk when guest in status %s",
"translation": "实例状态为%s时不支持扩容磁盘"
},
{
"id": "Not supported, please use kubectl",
"message": "Not supported, please use kubectl",
"translation": "不支持此操作请使用kubectl"
},
{
"id": "Container not support %s",
"message": "Container not support %s",
"translation": "容器不支持%s"
"id": "CloudpodsBaremetal %s is occupied",
"message": "CloudpodsBaremetal %s is occupied",
"translation": ""
},
{
"id": "The number of cpu sockets cannot be greater than the number of cpus",
@@ -1331,6 +1531,16 @@
"message": "can't rebuild root for a guest with instance snapshots",
"translation": "无法为有主机快照的虚拟机重装系统"
},
{
"id": "Cann't online resize root disk",
"message": "Cann't online resize root disk",
"translation": "不支持在线扩容系统盘"
},
{
"id": "Cannot resize disk when guest in status %s",
"message": "Cannot resize disk when guest in status %s",
"translation": "实例状态为%s时不支持扩容磁盘"
},
{
"id": "Unknown google storage type %s",
"message": "Unknown google storage type %s",
@@ -1364,7 +1574,7 @@
{
"id": "the host %s loses its ip address",
"message": "the host %s loses its ip address",
"translation": ""
"translation": "宿主机%s丢失IP地址"
},
{
"id": "Host %s not found",
@@ -1476,6 +1686,61 @@
"message": "data disk not support storage type %s",
"translation": "数据盘不支持存储类型%s"
},
{
"id": "Container not support %s",
"message": "Container not support %s",
"translation": "容器不支持%s"
},
{
"id": "not support format %s for disk %d",
"message": "not support format %s for disk %d",
"translation": ""
},
{
"id": "pod data is empty",
"message": "pod data is empty",
"translation": ""
},
{
"id": "containers data is empty",
"message": "containers data is empty",
"translation": ""
},
{
"id": "type is required",
"message": "type is required",
"translation": ""
},
{
"id": "mount_path is required",
"message": "mount_path is required",
"translation": ""
},
{
"id": "port range start %d is large than %d",
"message": "port range start %d is large than %d",
"translation": ""
},
{
"id": "port range start %d \u003c= %d",
"message": "port range start %d \u003c= %d",
"translation": ""
},
{
"id": "port range end %d \u003e %d",
"message": "port range end %d \u003e %d",
"translation": ""
},
{
"id": "port number %d isn't within %d to %d",
"message": "port number %d isn't within %d to %d",
"translation": ""
},
{
"id": "unsupported protocol %s",
"message": "unsupported protocol %s",
"translation": "不支持%s协议"
},
{
"id": "The %s disk size must be in the range of 10GB ~ 16000GB",
"message": "The %s disk size must be in the range of 10GB ~ 16000GB",
@@ -1617,9 +1882,9 @@
"translation": "磁盘必须已解绑"
},
{
"id": "not supported",
"message": "not supported",
"translation": ""
"id": "not supported resize disk",
"message": "not supported resize disk",
"translation": "不支持扩容磁盘"
},
{
"id": "%s is not mount point %s",
@@ -1684,11 +1949,11 @@
{
"id": "can not reset with disk associate with guests",
"message": "can not reset with disk associate with guests",
"translation": ""
"translation": "不允许挂载中的磁盘重置"
},
{
"id": "Qcloud reset disk required guest status is running or read",
"message": "Qcloud reset disk required guest status is running or read",
"id": "Qcloud reset disk required guest status is running or ready",
"message": "Qcloud reset disk required guest status is running or ready",
"translation": "腾讯云重置磁盘要求虚机状态必须是运行中或已关机"
},
{
@@ -1702,8 +1967,8 @@
"translation": "Ucloud仅支持数据盘重置操作"
},
{
"id": "Volcengine reset disk required guest status is running or read",
"message": "Volcengine reset disk required guest status is running or read",
"id": "Volcengine reset disk required guest status is running or ready",
"message": "Volcengine reset disk required guest status is running or ready",
"translation": ""
},
{
@@ -1769,7 +2034,7 @@
{
"id": "WebApp has %d task active, can't sync status",
"message": "WebApp has %d task active, can't sync status",
"translation": ""
"translation": "应用程序有%d个任务进行中请稍后进行同步状态"
},
{
"id": "Invalid storage type %s",
@@ -2104,17 +2369,12 @@
{
"id": "%s not support cdn",
"message": "%s not support cdn",
"translation": ""
"translation": "%s不支持CDN"
},
{
"id": "CDN domain has %d task active, can't sync status",
"message": "CDN domain has %d task active, can't sync status",
"translation": ""
},
{
"id": "account %s not enable saml auth",
"message": "account %s not enable saml auth",
"translation": "云账号%s为启用SAML认证"
"translation": "CDN已有%d个任务进行中请稍后再试"
},
{
"id": "account is enabled",
@@ -2191,11 +2451,6 @@
"message": "Account disabled",
"translation": "账号已禁用"
},
{
"id": "Account is not idle",
"message": "Account is not idle",
"translation": "账号正在同步中,稍后再试"
},
{
"id": "Unable to synchronize frequently",
"message": "Unable to synchronize frequently",
@@ -2351,6 +2606,71 @@
"message": "Cannot update external resource",
"translation": "不允许更新外部资源"
},
{
"id": "not found driver by type %q",
"message": "not found driver by type %q",
"translation": ""
},
{
"id": "guest_id is required",
"message": "guest_id is required",
"translation": ""
},
{
"id": "invalid image_pull_policy %s",
"message": "invalid image_pull_policy %s",
"translation": ""
},
{
"id": "/dev/shm size is small than 64MB",
"message": "/dev/shm size is small than 64MB",
"translation": ""
},
{
"id": "get lifecycle driver: %v",
"message": "get lifecycle driver: %v",
"translation": ""
},
{
"id": "get device driver: %v",
"message": "get device driver: %v",
"translation": ""
},
{
"id": "current status %s is not %s",
"message": "current status %s is not %s",
"translation": ""
},
{
"id": "Can't start container in status %s",
"message": "Can't start container in status %s",
"translation": ""
},
{
"id": "Can't stop container in status %s",
"message": "Can't stop container in status %s",
"translation": ""
},
{
"id": "Can't save volume disk of container in status %s",
"message": "Can't save volume disk of container in status %s",
"translation": ""
},
{
"id": "Can't save volume disk of pod in status %s",
"message": "Can't save volume disk of pod in status %s",
"translation": ""
},
{
"id": "Only %d volume_mounts",
"message": "Only %d volume_mounts",
"translation": ""
},
{
"id": "Can't exec container in status %s",
"message": "Can't exec container in status %s",
"translation": ""
},
{
"id": "not allow update rds account name",
"message": "not allow update rds account name",
@@ -2606,6 +2926,11 @@
"message": "can't backup guest to backup storage with status %s",
"translation": ""
},
{
"id": "fetch container by %s",
"message": "fetch container by %s",
"translation": ""
},
{
"id": "not support update disk_type %s",
"message": "not support update disk_type %s",
@@ -2616,11 +2941,6 @@
"message": "failed to find storage for disk %s",
"translation": "找不到磁盘%s对应的存储"
},
{
"id": "failed to find host for storage %s with disk %s",
"message": "failed to find host for storage %s with disk %s",
"translation": "无法为存储%s和磁盘%s找不到对应的宿主机"
},
{
"id": "disk create from existing disk must give storage",
"message": "disk create from existing disk must give storage",
@@ -2636,11 +2956,6 @@
"message": "cloudprovider %s not available",
"translation": "云订阅 %s 不可用"
},
{
"id": "storage %s(%s) need online and attach host for create disk",
"message": "storage %s(%s) need online and attach host for create disk",
"translation": "存储%s(%s)需挂载到宿主机达到在线状态"
},
{
"id": "Cannot create disk with disabled storage[%s]",
"message": "Cannot create disk with disabled storage[%s]",
@@ -2671,31 +2986,6 @@
"message": "Not enough free space",
"translation": "空闲空间不够"
},
{
"id": "Fetch snapshot count failed %s",
"message": "Fetch snapshot count failed %s",
"translation": "获取快照数失败:%s"
},
{
"id": "Disk %s don't need convert snapshots",
"message": "Disk %s don't need convert snapshots",
"translation": "磁盘%s不需要转换快照"
},
{
"id": "Can not get disk snapshot",
"message": "Can not get disk snapshot",
"translation": "无法获得磁盘快照"
},
{
"id": "Get convert snapshot failed: %s",
"message": "Get convert snapshot failed: %s",
"translation": "获取转换快照对象失败:%s"
},
{
"id": "Snapshot %s dose not have convert snapshot",
"message": "Snapshot %s dose not have convert snapshot",
"translation": "快照%s没有转换快照对象"
},
{
"id": "Cannot reset disk in status %s",
"message": "Cannot reset disk in status %s",
@@ -2711,6 +3001,16 @@
"message": "Cannot reset disk %s(%s),Snapshot is belong to disk %s",
"translation": "无法重置磁盘%s(%s),因快照属于磁盘%s"
},
{
"id": "Disk attached guest, cannot migrate",
"message": "Disk attached guest, cannot migrate",
"translation": "磁盘已挂载,不支持迁移"
},
{
"id": "Cannot migrate disk from storage type %s to %s",
"message": "Cannot migrate disk from storage type %s to %s",
"translation": ""
},
{
"id": "Resize disk when disk is READY",
"message": "Resize disk when disk is READY",
@@ -2731,16 +3031,16 @@
"message": "disk.GetQuotaKeys fail %s",
"translation": "disk.GetQuotaKeys失败%s"
},
{
"id": "No zone for this disk",
"message": "No zone for this disk",
"translation": "该磁盘没有zone信息"
},
{
"id": "Duplicate image name %s",
"message": "Duplicate image name %s",
"translation": "重复的镜像名%s"
},
{
"id": "No zone for this disk",
"message": "No zone for this disk",
"translation": "该磁盘没有zone信息"
},
{
"id": "Save disk when disk is READY",
"message": "Save disk when disk is READY",
@@ -2846,6 +3146,11 @@
"message": "The snapshot policy %s and the disk are in different region",
"translation": "自动快照策略%s与磁盘所在的区域不匹配"
},
{
"id": "Guest %s status is %s",
"message": "Guest %s status is %s",
"translation": ""
},
{
"id": "invalid record name %s",
"message": "invalid record name %s",
@@ -3214,7 +3519,7 @@
{
"id": "loadbalancer is already associated with eip",
"message": "loadbalancer is already associated with eip",
"translation": ""
"translation": "负载均衡已绑定弹性公网IP"
},
{
"id": "eip cannot dissociate in status %s",
@@ -3336,11 +3641,6 @@
"message": "Cannot send command in status %s",
"translation": "状态为%s时无法发送命令"
},
{
"id": "No host for server",
"message": "No host for server",
"translation": "无法找到虚机所在宿主机"
},
{
"id": "Cannot save image in status %s",
"message": "Cannot save image in status %s",
@@ -3384,7 +3684,7 @@
{
"id": "cannot clone encrypted server",
"message": "cannot clone encrypted server",
"translation": ""
"translation": "不支持克隆加密虚拟机"
},
{
"id": "Can't clone guest with backup guest",
@@ -3411,6 +3711,11 @@
"message": "update keypairId %v",
"translation": ""
},
{
"id": "login_account is longer than 32 chars",
"message": "login_account is longer than 32 chars",
"translation": "login_account长度已超过32字节"
},
{
"id": "Cannot deploy in status %s",
"message": "Cannot deploy in status %s",
@@ -3524,7 +3829,7 @@
{
"id": "Floppy not empty, please eject first",
"message": "Floppy not empty, please eject first",
"translation": ""
"translation": "软盘已挂载,请先卸载"
},
{
"id": "No VFD to eject",
@@ -3652,9 +3957,9 @@
"translation": "获取GPU失败%s"
},
{
"id": "guest %s host %s isolated device not enough",
"message": "guest %s host %s isolated device not enough",
"translation": "虚机%s所在宿主机%s透传设备不足"
"id": "require %d %s isolated device of host %s is not enough",
"message": "require %d %s isolated device of host %s is not enough",
"translation": ""
},
{
"id": "Can't separately attach dev type %s",
@@ -4089,7 +4394,7 @@
{
"id": "invalid IPv4 address %s",
"message": "invalid IPv4 address %s",
"translation": ""
"translation": "不正确的IPv4地址 %s"
},
{
"id": "Unreachable IP %s: %s",
@@ -4196,11 +4501,6 @@
"message": "guest can't do snapshot in status %s",
"translation": "虚机状态为%s无法做快照"
},
{
"id": "guests disk %d snapshot full, can't take anymore",
"message": "guests disk %d snapshot full, can't take anymore",
"translation": "虚机%d号磁盘快照数达到上限不可再创建"
},
{
"id": "Check set pending quota error %s",
"message": "Check set pending quota error %s",
@@ -4406,11 +4706,21 @@
"message": "guest status must be ready",
"translation": "虚机必须为关机状态"
},
{
"id": "input network configs length must equal guestnetworks length",
"message": "input network configs length must equal guestnetworks length",
"translation": ""
},
{
"id": "input network configs length must equal guestnetworks length",
"message": "input network configs length must equal guestnetworks length",
"translation": ""
},
{
"id": "missing guest ids",
"message": "missing guest ids",
"translation": ""
},
{
"id": "Cannot rescue guest hypervisor %s",
"message": "Cannot rescue guest hypervisor %s",
@@ -4664,7 +4974,7 @@
{
"id": "hostname should be a legal domain name",
"message": "hostname should be a legal domain name",
"translation": ""
"translation": "主机名必须是合法的域名"
},
{
"id": "can't find instance snapshot %s",
@@ -4706,11 +5016,6 @@
"message": "metdata must less then 20",
"translation": "metadata条目数不可超过20"
},
{
"id": "login_account is longer than 32 chars",
"message": "login_account is longer than 32 chars",
"translation": "login_account长度已超过32字节"
},
{
"id": "No bootable disk information provided",
"message": "No bootable disk information provided",
@@ -4954,7 +5259,7 @@
{
"id": "hostname cannot be number %d",
"message": "hostname cannot be number %d",
"translation": ""
"translation": "主机名不能是数字%d"
},
{
"id": "Windows hostname cannot be longer than %d characters",
@@ -4971,11 +5276,6 @@
"message": "Schedtag %s not found",
"translation": "找不到调度标签"
},
{
"id": "not supported hypervisor %s",
"message": "not supported hypervisor %s",
"translation": "不支持hypervisor %s"
},
{
"id": "Host is a converted baremetal, should be unconverted before delete",
"message": "Host is a converted baremetal, should be unconverted before delete",
@@ -5346,11 +5646,6 @@
"message": "require system previleges to convert host in other domain",
"translation": "转换其它域的宿主机需要系统权限"
},
{
"id": "Unsupport driver type %s",
"message": "Unsupport driver type %s",
"translation": "不支持驱动%s"
},
{
"id": "isAlterNameUnique fail %s",
"message": "isAlterNameUnique fail %s",
@@ -6156,11 +6451,6 @@
"message": "input ip mac conflict with guest %s nic %d",
"translation": ""
},
{
"id": "cannot fetch network of guestnetwork %d",
"message": "cannot fetch network of guestnetwork %d",
"translation": ""
},
{
"id": "allocate ip addr: %v",
"message": "allocate ip addr: %v",
@@ -6186,11 +6476,6 @@
"message": "Out of IP address",
"translation": "找不到可用IP地址"
},
{
"id": "candidate %s out of range",
"message": "candidate %s out of range",
"translation": "候选IP %s不在范围内"
},
{
"id": "no allow to access network %s",
"message": "no allow to access network %s",
@@ -6261,6 +6546,11 @@
"message": "network %s(%s) has no free addresses",
"translation": "子网%s(%s)已没有可用地址"
},
{
"id": "invalid ip or prefix %s",
"message": "invalid ip or prefix %s",
"translation": ""
},
{
"id": "Duration %s invalid",
"message": "Duration %s invalid",
@@ -7361,6 +7651,11 @@
"message": "not empty zone: %s",
"translation": ""
},
{
"id": "contains %d networks",
"message": "contains %d networks",
"translation": ""
},
{
"id": "failed to found cloudregion %s",
"message": "failed to found cloudregion %s",
@@ -7816,6 +8111,11 @@
"message": "bad network type %q, want %q",
"translation": "无效的子网类型%q期望%q"
},
{
"id": "candidate %s out of range",
"message": "candidate %s out of range",
"translation": "候选IP %s不在范围内"
},
{
"id": "requested ip %s is occupied!",
"message": "requested ip %s is occupied!",
@@ -7976,11 +8276,6 @@
"message": "Snapshot reference(by disk) count \u003e 0, can not delete",
"translation": "快照正被磁盘使用,无法删除"
},
{
"id": "disk need at least one of snapshot as backing file",
"message": "disk need at least one of snapshot as backing file",
"translation": "磁盘需要至少1个快照作为后备文件"
},
{
"id": "Disk %s dosen't attach guest ?",
"message": "Disk %s dosen't attach guest ?",
@@ -7997,20 +8292,20 @@
"translation": "虚机状态为%s时无法创建快照"
},
{
"id": "check disk snapshot count fail %s",
"message": "check disk snapshot count fail %s",
"translation": "检查磁盘快照数时出错:%s"
},
{
"id": "Disk %s snapshot full, cannot take any more",
"message": "Disk %s snapshot full, cannot take any more",
"translation": "磁盘%s快照数满不可再创建"
"id": "This CLVM Storage[%s/%s] has already exist",
"message": "This CLVM Storage[%s/%s] has already exist",
"translation": ""
},
{
"id": "This RBD Storage[%s/%s] has already exist",
"message": "This RBD Storage[%s/%s] has already exist",
"translation": "RBD存储%s(%s)已存在"
},
{
"id": "This SLVM Storage[%s/%s] has already exist",
"message": "This SLVM Storage[%s/%s] has already exist",
"translation": ""
},
{
"id": "start_date should befor end_date",
"message": "start_date should befor end_date",
@@ -8976,6 +9271,16 @@
"message": "unsupported action %s",
"translation": "不支持的动作%s"
},
{
"id": "container_id",
"message": "container_id",
"translation": ""
},
{
"id": "not found guest_id from container %s",
"message": "not found guest_id from container %s",
"translation": ""
},
{
"id": "cluster system-default no id",
"message": "cluster system-default no id",
@@ -9146,6 +9451,11 @@
"message": "Cannot delete system alert",
"translation": ""
},
{
"id": "invalid operator %s",
"message": "invalid operator %s",
"translation": ""
},
{
"id": "threshold:%s should be number type",
"message": "threshold:%s should be number type",
@@ -9407,4 +9717,4 @@
"translation": "权限定义正被使用"
}
]
}
}

View File

@@ -45,3 +45,8 @@ func SetupTest() {
key, _ := rsa.GenerateKey(rand.Reader, 2048)
setPrivateKey(key)
}
type SApigatewayApi struct {
Id string
Name string
}

View File

@@ -34,7 +34,6 @@ import (
"yunion.io/x/onecloud/pkg/apigateway/options"
policytool "yunion.io/x/onecloud/pkg/apigateway/policy"
agapi "yunion.io/x/onecloud/pkg/apis/apigateway"
"yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/appsrv"
"yunion.io/x/onecloud/pkg/cloudcommon/policy"
"yunion.io/x/onecloud/pkg/httperrors"
@@ -1070,25 +1069,6 @@ func getUserInfo2(s *mcclient.ClientSession, uid string, pid string, loginIp str
menus.Add(item)
}
log.Infof("getUserInfo modules.Hosts.Get")
// s2 := auth.GetSession(ctx, token, FetchRegion(req), "v2")
params := jsonutils.NewDict()
params.Add(jsonutils.NewString("host_type"), "field")
params.Add(jsonutils.NewString("system"), "scope")
params.Add(jsonutils.JSONTrue, "usable")
params.Add(jsonutils.JSONTrue, "show_emulated")
cap, err := compute_modules.Hosts.Get(s, "distinct-field", params)
if err != nil {
log.Errorf("modules.Servers.Get distinct-field fail %s", err)
} else {
hostTypes, _ := jsonutils.GetStringArray(cap, "host_type")
hypervisors := make([]string, len(hostTypes))
for i, hostType := range hostTypes {
hypervisors[i] = compute.HOSTTYPE_HYPERVISOR[hostType]
}
data.Add(jsonutils.NewStringArray(hypervisors), "hypervisors")
}
data.Add(menus, "menus")
data.Add(k8s, "k8sdashboard")
data.Add(services, "services")

View File

@@ -108,6 +108,8 @@ func (h *MiscHandler) Bind(app *appsrv.Application) {
// 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)
}
func UploadHandlerInfo(method, prefix string, handler func(context.Context, http.ResponseWriter, *http.Request)) *appsrv.SHandlerInfo {
@@ -460,7 +462,7 @@ func (mh *MiscHandler) getDownloadsHandler(ctx context.Context, w http.ResponseW
params := appctx.AppContextParams(ctx)
template, ok := params["<template_id>"]
if !ok || len(template) == 0 {
httperrors.InvalidInputError(ctx, w, "template_id")
httperrors.MissingParameterError(ctx, w, "template_id")
return
}

View File

@@ -644,12 +644,13 @@ func (f *ResourceHandlers) updateJointHandler(ctx context.Context, w http.Respon
session := req.Session()
module := req.Mod1()
module2 := req.Mod2()
query := req.Query()
body := req.Body()
jmod, e := modulebase.GetJointModule2(session, module, module2)
var obj jsonutils.JSONObject
if e == nil { // update joint
obj, e = jmod.Update(session, req.ResID(), req.ResID2(), nil, body)
obj, e = jmod.Update(session, req.ResID(), req.ResID2(), query, body)
} else { // update in context
obj, e = module2.PutInContext(session, req.ResID2(), body, module, req.ResID())
}
@@ -669,12 +670,13 @@ func (f *ResourceHandlers) patchJointHandler(ctx context.Context, w http.Respons
session := req.Session()
module := req.Mod1()
module2 := req.Mod2()
query := req.Query()
body := req.Body()
jmod, e := modulebase.GetJointModule2(session, module, module2)
var obj jsonutils.JSONObject
if e == nil { // update joint
obj, e = jmod.Patch(session, req.ResID(), req.ResID2(), nil, body)
obj, e = jmod.Patch(session, req.ResID(), req.ResID2(), query, body)
} else { // update in context
obj, e = module2.PatchInContext(session, req.ResID2(), body, module, req.ResID())
}

View File

@@ -0,0 +1,81 @@
// 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 handler
import (
"context"
"net/http"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/appsrv"
"yunion.io/x/onecloud/pkg/httperrors"
"yunion.io/x/onecloud/pkg/mcclient/auth"
"yunion.io/x/onecloud/pkg/mcclient/modules/identity"
)
var settingNames = map[string][]string{
"identity": []string{"no_action_logout_seconds"},
"yunionapi": []string{"enable_organization"},
"image": []string{"enable_pending_delete"},
"compute_v2": []string{"enable_pending_delete"},
"meter": []string{"cost_conversion_available", "enable_prediction", "share_resource_type"},
"common": []string{"api_server", "enable_quota_check", "enable_watermark", "enable_cloud_shell"},
}
func (mh *MiscHandler) getServiceSettings(ctx context.Context, w http.ResponseWriter, req *http.Request) {
s := auth.GetAdminSession(ctx, FetchRegion(req))
types := []string{}
for typ := range settingNames {
types = append(types, typ)
}
params := map[string]interface{}{
"limit": 20,
"scope": "system",
"type": types,
}
resp, err := identity.ServicesV3.List(s, jsonutils.Marshal(params))
if err != nil {
e := httperrors.NewInternalServerError(err.Error())
httperrors.JsonClientError(ctx, w, e)
return
}
services := []struct {
Id string
Type string
}{}
err = jsonutils.Update(&services, resp.Data)
if err != nil {
e := httperrors.NewInternalServerError(err.Error())
httperrors.JsonClientError(ctx, w, e)
return
}
result := map[string]map[string]interface{}{}
for _, service := range services {
result[service.Type] = map[string]interface{}{}
data, err := identity.ServicesV3.GetSpecific(s, service.Id, "config", nil)
if err != nil {
e := httperrors.NewInternalServerError(err.Error())
httperrors.JsonClientError(ctx, w, e)
return
}
names, _ := settingNames[service.Type]
for _, name := range names {
v, _ := data.Get("config", "default", name)
result[service.Type][name] = v
}
}
appsrv.SendJSON(w, jsonutils.Marshal(result))
}

View File

@@ -21,6 +21,9 @@ import (
"strings"
"time"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"yunion.io/x/jsonutils"
"yunion.io/x/log"
"yunion.io/x/pkg/errors"
@@ -75,9 +78,11 @@ type sReport struct {
}
const (
RUNNING_ENV_KUBERNETES = "kubernetes"
RUNNING_ENV_DOCKER_COMPOSE = "docker-compose"
RUNNING_ENV_UNKNOWN = "unknown"
RUNNING_ENV_KUBERNETES = "kubernetes"
RUNNING_ENV_K3S = "k3s"
RUNNING_ENV_DOCKER_COMPOSE = "docker-compose"
RUNNING_ENV_DOCKER_COMPOSE_BAREMETAL = "docker-compose-baremetal"
RUNNING_ENV_UNKNOWN = "unknown"
)
func isInsideDockerCompose() bool {
@@ -117,12 +122,48 @@ func isInsideKubernetes() bool {
return true
}
func getK8sVersion() (string, error) {
cfg, err := rest.InClusterConfig()
if err != nil {
return "", errors.Wrap(err, "get k8s config")
}
client, err := kubernetes.NewForConfig(cfg)
if err != nil {
return "", errors.Wrap(err, "get k8s client")
}
ver, err := client.ServerVersion()
if err != nil {
return "", errors.Wrap(err, "get k8s version")
}
return ver.String(), nil
}
func getRunningEnv() string {
if isInsideKubernetes() {
ver, err := getK8sVersion()
if err != nil {
log.Errorf("get k8s version: %v", err)
}
if strings.Contains(ver, "k3s") {
return RUNNING_ENV_K3S
}
return RUNNING_ENV_KUBERNETES
}
if isInsideDockerCompose() {
// list agent to check whether we're running baremetal agent
s := auth.GetAdminSession(context.Background(), options.Options.Region)
ret, err := compute.Baremetalagents.List(s, nil)
if err != nil {
log.Warningf("list agents error: %s", err)
return RUNNING_ENV_DOCKER_COMPOSE
}
for _, agent := range ret.Data {
aType, _ := agent.GetString("agent_type")
if aType == "baremetal" {
return RUNNING_ENV_DOCKER_COMPOSE_BAREMETAL
}
}
return RUNNING_ENV_DOCKER_COMPOSE
}
return RUNNING_ENV_UNKNOWN

View File

@@ -16,10 +16,19 @@ package service
import (
_ "yunion.io/x/onecloud/pkg/cloudevent/policy"
_ "yunion.io/x/onecloud/pkg/compute/policy"
_ "yunion.io/x/onecloud/pkg/image/policy"
_ "yunion.io/x/onecloud/pkg/keystone/policy"
_ "yunion.io/x/onecloud/pkg/logger/policy"
_ "yunion.io/x/onecloud/pkg/notify/policy"
_ "yunion.io/x/onecloud/pkg/yunionconf/policy"
compute "yunion.io/x/onecloud/pkg/compute/policy"
image "yunion.io/x/onecloud/pkg/image/policy"
keystone "yunion.io/x/onecloud/pkg/keystone/policy"
logger "yunion.io/x/onecloud/pkg/logger/policy"
notify "yunion.io/x/onecloud/pkg/notify/policy"
yunionconf "yunion.io/x/onecloud/pkg/yunionconf/policy"
)
func InitDefaultPolicy() {
compute.Init()
image.Init()
keystone.Init()
logger.Init()
notify.Init()
yunionconf.Init()
}

View File

@@ -39,6 +39,7 @@ func StartService() {
baseOpts := &opts.BaseOptions
commonOpts := &opts.CommonOptions
common_options.ParseOptions(opts, os.Args, "apigateway.conf", api.SERVICE_TYPE)
InitDefaultPolicy()
app_common.InitAuth(commonOpts, func() {
log.Infof("Auth complete.")
})

View File

@@ -34,8 +34,6 @@ import (
)
const (
ErrSync = errors.Error("sync error")
MinSyncIntervalSeconds = 10
MinRunDelayMilliseconds = 100
)
@@ -170,7 +168,7 @@ func (h *APIHelper) doSync(ctx context.Context) (changed bool, err error) {
if err != nil {
log.Errorf("unable to EventNotify: %s", err)
}
return false, errors.Wrap(ErrSync, "incorrect")
return false, errors.Errorf("sync error")
}
changed = r.Changed
return changed, nil

View File

@@ -0,0 +1,32 @@
// 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 baremetal
type ValidateIPMIRequest struct {
Ip string `json:"ip"`
Username string `json:"username"`
Password string `json:"password"`
}
type RedfishSystemInfo struct {
Path string `json:"path"`
Info interface{} `json:"info"`
}
type ValidateIPMIResponse struct {
IsRedfishSupported bool `json:"is_redfish_supported"`
RedfishSystemInfo *RedfishSystemInfo `json:"redfish_system_info"`
IPMISystemInfo interface{} `json:"ipmi_system_info"`
}

View File

@@ -39,8 +39,9 @@ type SamluserDetails struct {
CloudgroupResourceDetails
CloudaccountResourceDetails
ManagerId string
Manager string
CloudaccountId string
ManagerId string
Manager string
SSamluser
}

View File

@@ -90,8 +90,6 @@ type SCloudpolicy struct {
PolicyType string `json:"policy_type"`
// 策略内容
Document *jsonutils.JSONDict `json:"document"`
// 是否锁定, 若锁定后, 此策略不允许被绑定到用户或权限组, 仅管理员可以设置是否锁定
Locked *bool `json:"locked,omitempty"`
}
// SCloudpolicyResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SCloudpolicyResourceBase.
@@ -110,7 +108,7 @@ type SCloudprovider struct {
// SCloudproviderResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SCloudproviderResourceBase.
type SCloudproviderResourceBase struct {
// 子订阅Id
CloudproviderId string `json:"cloudprovider_id"`
ManagerId string `json:"manager_id"`
}
// SCloudrole is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SCloudrole.
@@ -118,10 +116,10 @@ type SCloudrole struct {
apis.SEnabledStatusInfrasResourceBase
apis.SExternalizedResourceBase
SCloudaccountResourceBase
SCloudproviderResourceBase
SAMLProviderResourceBase
SCloudgroupResourceBase
Document *jsonutils.JSONDict `json:"document"`
OwnerId string `json:"owner_id"`
}
// SClouduser is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SClouduser.
@@ -161,6 +159,7 @@ type SSAMLProvider struct {
apis.SStatusInfrasResourceBase
apis.SExternalizedResourceBase
SCloudaccountResourceBase
SCloudproviderResourceBase
EntityId string `json:"entity_id"`
MetadataDocument string `json:"metadata_document"`
AuthUrl string `json:"auth_url"`
@@ -169,9 +168,8 @@ type SSAMLProvider struct {
// SSamluser is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SSamluser.
type SSamluser struct {
apis.SStatusDomainLevelUserResourceBase
apis.SExternalizedResourceBase
SCloudgroupResourceBase
SCloudaccountResourceBase
// 邮箱地址
Email string `json:"email"`
Email string `json:"email"`
CloudroleId string `json:"cloudrole_id"`
}

View File

@@ -1,5 +1,6 @@
// Copyright 2019 Yunion
//
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
// 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
@@ -12,4 +13,28 @@
// See the License for the specific language governing permissions and
// limitations under the License.
package cloudprovider // import "yunion.io/x/onecloud/pkg/apis/cloudprovider"
// Code generated by swagger-gen. DO NOT EDIT.
// Cloudprovider API
//
// Schemes: https, http
// BasePath: /
// Version: 1.0
// Host: "127.0.0.1:8889"
// Contact: Zexi Li<lizexi@yunion.cn>
// License: Apache 2.0 http://www.apache.org/licenses/LICENSE-2.0.html
//
// Consumes:
// - application/json
//
// Produces:
// - application/json
//
// SecurityDefinitions:
// keystone:
// name: X-Auth-Token
// type: apiKey
// in: header
//
// swagger:meta
package cloudprovider

View File

@@ -14,7 +14,22 @@
package cloudprovider
import "yunion.io/x/cloudmux/pkg/cloudprovider"
// CacheKeyRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.CacheKeyRule.
type CacheKeyRule struct {
RulePaths []string `json:"rule_paths"`
RuleType string `json:"rule_type"`
FullUrlCache bool `json:"full_url_cache"`
IgnoreCase bool `json:"ignore_case"`
QueryString CacheKeyRuleQueryString `json:"query_string"`
RuleTag string `json:"rule_tag"`
}
// CacheKeyRuleQueryString is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.CacheKeyRuleQueryString.
type CacheKeyRuleQueryString struct {
Enabled bool `json:"enabled"`
Action string `json:"action"`
Value string `json:"value"`
}
// DefaultAction is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.DefaultAction.
type DefaultAction struct {
@@ -30,6 +45,115 @@ type DefaultAction struct {
ResponseHeaders map[string]string `json:"response_headers"`
}
// ElasticSearchAccessInfo is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.ElasticSearchAccessInfo.
type ElasticSearchAccessInfo struct {
Domain string `json:"domain"`
PrivateDomain string `json:"private_domain"`
Vip string `json:"vip"`
Port int `json:"port"`
PrivatePort int `json:"private_port"`
KibanaUrl string `json:"kibana_url"`
KibanaPrivateUrl string `json:"kibana_private_url"`
}
// RefererRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.RefererRule.
type RefererRule struct {
// 规则类型:
// all所有文件生效
// file指定文件后缀生效
// directory指定路径生效
// path指定绝对路径生效
RuleType string `json:"rule_type"`
RulePaths []string `json:"rule_paths"`
RefererType string `json:"referer_type"`
Referers []string `json:"referers"`
AllowEmpty *bool `json:"allow_empty"`
}
// RuleCacheConfig is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.RuleCacheConfig.
type RuleCacheConfig struct {
Cache *struct {
Enabled bool
CacheTime int
CompareMaxAge bool
IgnoreCacheControl bool
IgnoreSetCookie bool
} `json:"cache"`
NoCache *struct {
Enabled bool
Revalidate bool
} `json:"no_cache"`
FollowOrigin *struct {
Enabled bool
HeuristicCache struct {
Enabled bool
CacheConfig struct {
HeuristicCacheTimeSwitch bool
HeuristicCacheTime int
}
}
} `json:"follow_origin"`
}
// SCDNCache is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNCache.
type SCDNCache struct {
RuleCache []SCacheRuleCache `json:"rule_cache"`
}
// SCDNCacheKeys is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNCacheKeys.
type SCDNCacheKeys struct {
// 开启关闭忽略参数
Enabled *bool `json:"enabled"`
// 是否忽略大小
IgnoreCase *bool `json:"ignore_case"`
// 分路径缓存键配置
KeyRules []CacheKeyRule `json:"key_rules"`
}
// SCDNForceRedirect is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNForceRedirect.
type SCDNForceRedirect struct {
// 访问强制跳转配置开关
Enabled *bool `json:"enabled"`
// 访问强制跳转类型
// enmu: http, https
RedirectType string `json:"redirect_type"`
}
// SCDNHttps is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNHttps.
type SCDNHttps struct {
// https 配置开关
Enabled *bool `json:"enabled"`
// http2 配置开关
Http2 *bool `json:"http2"`
}
// SCDNMaxAge is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNMaxAge.
type SCDNMaxAge struct {
Enabled *bool `json:"enabled"`
MaxAgeRules []SMaxAgeRule `json:"max_age_rules"`
}
// SCDNRangeOriginPull is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNRangeOriginPull.
type SCDNRangeOriginPull struct {
Enabled *bool `json:"enabled"`
RangeOriginPullRules []SRangeOriginPullRule `json:"range_origin_pull_rules"`
}
// SCDNReferer is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNReferer.
type SCDNReferer struct {
// 是否开启防盗链
Enabled *bool `json:"enabled"`
RefererRules []RefererRule `json:"referer_rules"`
}
// SCacheRuleCache is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCacheRuleCache.
type SCacheRuleCache struct {
RulePaths []string `json:"rule_paths"`
RuleType string `json:"rule_type"`
Priority int `json:"priority"`
CacheConfig *RuleCacheConfig `json:"cache_config"`
}
// SCdnDomain is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCdnDomain.
type SCdnDomain struct {
// cdn加速域名
@@ -48,14 +172,22 @@ type SCdnDomain struct {
// SCdnOrigin is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCdnOrigin.
type SCdnOrigin struct {
Type string `json:"type"`
Origin string `json:"origin"`
// 源站类型
// domain: 域名类型, cos对象存储源站, ipIP 列表作为源站
// enmu: domain, cos, ip
// required: true
Type string `json:"type"`
// 源站地址
Origin string `json:"origin"`
// 回主源站时 Host 头部
ServerName string `json:"server_name"`
Protocol string `json:"protocol"`
Path string `json:"path"`
Port int `json:"port"`
Enabled string `json:"enabled"`
Priority int `json:"priority"`
// 回源协议
// enmu: http, follow, https
Protocol string `json:"protocol"`
Path string `json:"path"`
Port int `json:"port"`
Enabled string `json:"enabled"`
Priority int `json:"priority"`
}
// SCdnOrigins is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCdnOrigins.
@@ -85,10 +217,28 @@ type SGeographicInfo struct {
CountryCode string `json:"country_code"`
}
// SMaxAgeRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SMaxAgeRule.
type SMaxAgeRule struct {
MaxAgeType string `json:"max_age_type"`
MaxAgeContents []string `json:"max_age_contents"`
MaxAgeTime int `json:"max_age_time"`
FollowOrigin bool `json:"follow_origin"`
}
// SRangeOriginPullRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SRangeOriginPullRule.
type SRangeOriginPullRule struct {
Enabled bool `json:"enabled"`
RuleType string `json:"rule_type"`
RulePaths []string `json:"rule_paths"`
}
// SSubAccount is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SSubAccount.
type SSubAccount struct {
Id string `json:"id"`
// 若Account不为空可不传
Name string `json:"name"`
// 描述信息
Desc string `json:"desc"`
// 输入必填,若为空,需要指定子账号名称
Account string `json:"account"`
HealthStatus string `json:"health_status"`
@@ -144,9 +294,11 @@ type ServerVncOutput struct {
HostId string `json:"host_id"`
Zone string `json:"zone"`
// kvm host ip
Host string `json:"host"`
Protocol string `json:"protocol"`
Port int64 `json:"port"`
Host string `json:"host"`
Protocol string `json:"protocol"`
Port int64 `json:"port"`
// volcengine
Region string `json:"region"`
Url string `json:"url"`
InstanceId string `json:"instance_id"`
InstanceName string `json:"instance_name"`
@@ -163,7 +315,7 @@ type ServerVncOutput struct {
// SubAccounts is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SubAccounts.
type SubAccounts struct {
// 若输出则是全量子账号列表,若输入,代表允许同步的子账号
Accounts []cloudprovider.SSubAccount `json:"accounts"`
Accounts []SSubAccount `json:"accounts"`
// 若输出是云账号查询到的区域列表,若输入,代表允许同步的区域
Cloudregions []struct {
Id string

View File

@@ -0,0 +1,18 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
// 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.
// Code generated by swagger-gen. DO NOT EDIT.
package cloudprovider

View File

@@ -284,7 +284,7 @@ type IsolatedDeviceConfig struct {
DevType string `json:"dev_type"`
Model string `json:"model"`
Vendor string `json:"vendor"`
NetworkIndex *int8 `json:"network_index"`
NetworkIndex *int `json:"network_index"`
WireId string `json:"wire_id"`
DiskIndex *int8 `json:"disk_index"`
DevicePath string `json:"device_path"`
@@ -309,6 +309,21 @@ type BaremetalDiskConfig struct {
Direct *bool `json:"direct,omitempty"`
}
type RootDiskMatcherSizeMBRange struct {
Start int64 `json:"start"`
End int64 `json:"end"`
}
const (
BAREMETAL_SERVER_METATA_ROOT_DISK_MATCHER = "baremetal_root_disk_matcher"
)
type BaremetalRootDiskMatcher struct {
Device string `json:"device"`
SizeMB int64 `json:"size_mb"`
SizeMBRange *RootDiskMatcherSizeMBRange `json:"size_mb_range"`
}
type ServerConfigs struct {
// 调度使用指定的云账号
PreferManager string `json:"prefer_manager_id"`
@@ -350,6 +365,9 @@ type ServerConfigs struct {
// default: kvm
Hypervisor string `json:"hypervisor"`
// swagger: ignore
Provider string `json:"provider"`
// 包年包月资源池
// swagger:ignore
// emum: shared, prepaid, dedicated
@@ -401,6 +419,9 @@ type ServerConfigs struct {
// 裸金属磁盘配置列表
BaremetalDiskConfigs []*BaremetalDiskConfig `json:"baremetal_disk_configs"`
// 裸金属系统盘匹配器
BaremetalRootDiskMatcher *BaremetalRootDiskMatcher `json:"baremetal_root_disk_matcher"`
// 主机组列表, 参数可以是主机组名称或ID,建议使用ID
InstanceGroupIds []string `json:"groups"`

View File

@@ -14,7 +14,11 @@
package compute
import "yunion.io/x/onecloud/pkg/apis"
import (
"time"
"yunion.io/x/onecloud/pkg/apis"
)
const (
APP_TYPE_WEB = "web"
@@ -38,6 +42,9 @@ type AppDetails struct {
apis.VirtualResourceDetails
ManagedResourceInfo
CloudregionResourceInfo
Network string
VpcId string
Vpc string
}
type AppEnvironmentListInput struct {
@@ -51,3 +58,56 @@ type AppEnvironmentListInput struct {
type AppEnvironmentDetails struct {
apis.VirtualResourceDetails
}
type AppHybirdConnection struct {
Id string
Name string
Hostname string
Namespace string
Port int
}
type AppHybirdConnectionOutput struct {
Data []AppHybirdConnection
}
type AppBackup struct {
Id string
Name string
Type string
}
type AppBackupOutput struct {
Data []AppBackup
BackupConfig struct {
Enabled bool
FrequencyInterval int
FrequencyUnit string
RetentionPeriodInDays int
}
}
type AppCertificate struct {
Id string
Name string
SubjectName string
Issuer string
IssueDate time.Time
Thumbprint string
ExpireTime time.Time
}
type AppCertificateOutput struct {
Data []AppCertificate
}
type AppDomain struct {
Id string
Name string
Status string
SslState string
}
type AppDomainOutput struct {
Data []AppDomain
}

View File

@@ -83,6 +83,11 @@ type BackupStorageDetails struct {
type BackupStorageListInput struct {
apis.EnabledStatusInfrasResourceBaseListInput
// filter by server_id
ServerId string `json:"server_id"`
// filter by disk_id
DiskId string `json:"disk_id"`
}
type DiskBackupListInput struct {
@@ -112,6 +117,8 @@ type DiskBackupDetails struct {
BackupStorageName string `json:"backup_storage_name"`
// description: 是否是子备份
IsSubBackup bool `json:"is_sub_backup"`
SDiskBackup
}
type DiskBackupCreateInput struct {
@@ -182,6 +189,8 @@ type SBackupStorageAccessInfo struct {
ObjectAccessKey string `json:"object_access_key"`
// description: secret of object storage
ObjectSecret string `json:"object_secret"`
// description: signing version, can be v2/v4, default is v4
ObjectSignVer string `json:"object_sign_ver"`
}
func (ba *SBackupStorageAccessInfo) String() string {

View 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 compute
type BackupstorageResourceInput struct {
// 备份存储ID或Name
BackupstorageId string `json:"backupstorage_id"`
// swagger:ignore
// Deprecated
// filter by backupstorage_id
Backupstorage string `json:"backupstorage" yunion-deprecated-by:"backupstorage_id"`
}
type BackupstorageFilterListInputBase struct {
BackupstorageResourceInput
// 以备份存储名称排序
// pattern:asc|desc
OrderByBackupstorage string `json:"order_by_backupstorage"`
}
type BackupstorageResourceInfo struct {
// 备份存储名称
Backupstorage string `json:"backupstorage"`
// 备份存储类型
BackupstorageType TBackupStorageType `json:"backupstorage_type"`
// 备份存储状态
BackupstorageStatus string `json:"backupstorage_status"`
}
type BackupstorageFilterListInput struct {
BackupstorageFilterListInputBase
}

View 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 baremetal // import "yunion.io/x/onecloud/pkg/apis/compute/baremetal"

View File

@@ -0,0 +1,165 @@
// 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 baremetal
import (
"strings"
"yunion.io/x/onecloud/pkg/apis"
"yunion.io/x/onecloud/pkg/cloudcommon/types"
)
const (
DefaultBaremetalProfileId = "default"
)
type BaremetalProfileListInput struct {
apis.StandaloneAnonResourceListInput
OemName []string `json:"oem_name"`
Model []string `json:"model"`
}
func (input *BaremetalProfileListInput) Normalize() {
for i := range input.OemName {
input.OemName[i] = strings.TrimSpace(input.OemName[i])
}
for i := range input.Model {
input.Model[i] = strings.TrimSpace(input.Model[i])
}
}
type BaremetalProfileCreateInput struct {
apis.StandaloneAnonResourceCreateInput
OemName string
Model string
LanChannel uint8
RootId int
RootName string
StrongPass bool
}
type BaremetalProfileUpdateInput struct {
apis.StandaloneAnonResourceBaseUpdateInput
LanChannel uint8
RootId *int
RootName string
StrongPass *bool
}
type BaremetalProfileDetails struct {
SBaremetalProfile
}
func (detail BaremetalProfileDetails) ToSpec() BaremetalProfileSpec {
channels := make([]uint8, 0)
if detail.LanChannel > 0 {
channels = append(channels, detail.LanChannel)
}
if detail.LanChannel2 > 0 {
channels = append(channels, detail.LanChannel2)
}
if detail.LanChannel3 > 0 {
channels = append(channels, detail.LanChannel3)
}
return BaremetalProfileSpec{
OemName: detail.OemName,
Model: detail.Model,
LanChannels: channels,
RootName: detail.RootName,
RootId: detail.RootId,
StrongPass: detail.StrongPass,
}
}
type BaremetalProfileSpec struct {
OemName string
Model string
LanChannels []uint8
RootName string
RootId int
StrongPass bool
}
type BaremetalProfileSpecs []BaremetalProfileSpec
func (a BaremetalProfileSpecs) Len() int { return len(a) }
func (a BaremetalProfileSpecs) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a BaremetalProfileSpecs) Less(i, j int) bool {
if a[i].OemName != a[j].OemName {
return a[i].OemName < a[j].OemName
}
if a[i].Model != a[j].Model {
return a[i].Model < a[j].Model
}
return false
}
var PredefinedProfiles = []BaremetalProfileSpec{
{
OemName: "",
LanChannels: []uint8{1, 2, 8},
RootName: "root",
RootId: 2,
},
{
OemName: types.OEM_NAME_INSPUR,
LanChannels: []uint8{8, 1},
RootName: "admin",
RootId: 2,
},
{
OemName: types.OEM_NAME_LENOVO,
LanChannels: []uint8{1, 8},
RootName: "root",
RootId: 2,
},
{
OemName: types.OEM_NAME_HP,
LanChannels: []uint8{1, 2},
RootName: "root",
RootId: 1,
},
{
OemName: types.OEM_NAME_HUAWEI,
LanChannels: []uint8{1},
RootName: "root",
RootId: 2,
StrongPass: true,
},
{
OemName: types.OEM_NAME_FOXCONN,
LanChannels: []uint8{1},
RootName: "root",
RootId: 2,
StrongPass: true,
},
{
OemName: types.OEM_NAME_QEMU,
LanChannels: []uint8{8, 1},
RootName: "root",
RootId: 2,
StrongPass: true,
},
{
OemName: types.OEM_NAME_H3C,
LanChannels: []uint8{1},
RootName: "root",
RootId: 2,
StrongPass: true,
},
}

View File

@@ -0,0 +1,36 @@
// 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.
// Code generated by model-api-gen. DO NOT EDIT.
package baremetal
import (
"yunion.io/x/onecloud/pkg/apis"
)
// SBaremetalProfile is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models/baremetal.SBaremetalProfile.
type SBaremetalProfile struct {
apis.SStandaloneAnonResourceBase
// 品牌名称English)
OemName string `json:"oem_name"`
Model string `json:"model"`
LanChannel byte `json:"lan_channel"`
LanChannel2 byte `json:"lan_channel2"`
LanChannel3 byte `json:"lan_channel3"`
// BMC Root账号名称默认为 root
RootName string `json:"root_name"`
// BMC Root账号ID默认为 2
RootId int `json:"root_id"`
// 是否要求强密码
StrongPass bool `json:"strong_pass"`
}

View File

@@ -68,3 +68,22 @@ type CachedimageDetails struct {
type CachedImageSetClassMetadataInput struct {
ClassMetadata map[string]string `json:"class_metadata"`
}
type CachedimageListInput struct {
apis.SharableVirtualResourceListInput
apis.ExternalizedResourceBaseListInput
CloudproviderResourceListInput
CloudregionResourceListInput
ZoneResourceInput
// 镜像类型,可能值为: system(公有云公共镜像), customized(自定义镜像)
// example: system
ImageType []string `json:"image_type"`
// filter by host schedtag
HostSchedtagId string `json:"host_schedtag_id"`
// valid cachedimage
Valid bool `json:"valid"`
}

View File

@@ -72,12 +72,6 @@ type CloudenvResourceListInput struct {
// Deprecated
Provider []string `json:"provider" yunion-deprecated-by:"providers"`
// 列出指定云平台品牌的资源一般来说brand和provider相同除了以上支持的provider之外还支持以下band
//
// | Brand | Provider | 说明 |
// |----------|----------|------------|
// | DStack | ZStack | 滴滴云私有云 |
//
Brands []string `json:"brands"`
// swagger:ignore
// Deprecated
@@ -97,25 +91,25 @@ type CloudenvResourceListInput struct {
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
PublicCloud bool `json:"public_cloud"`
PublicCloud *bool `json:"public_cloud"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsPublic bool `json:"is_public"`
IsPublic *bool `json:"is_public"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
PrivateCloud bool `json:"private_cloud"`
PrivateCloud *bool `json:"private_cloud"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsPrivate bool `json:"is_private"`
IsPrivate *bool `json:"is_private"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsOnPremise bool `json:"is_on_premise"`
IsOnPremise *bool `json:"is_on_premise"`
// 以平台名称排序
// pattern:asc|desc
@@ -169,7 +163,7 @@ type CloudaccountCreateInput struct {
// | Huawei | Huawei |
// | OpenStack | OpenStack |
// | Ucloud | Ucloud |
// | ZStack | ZStack, DStack |
// | ZStack | ZStack |
// | Google | Google |
// | Ctyun | Ctyun |
Brand string `json:"brand"`
@@ -224,6 +218,8 @@ type CloudaccountCreateInput struct {
// 货币类型
// enmu: CNY, USD
Currency string `json:"currency"`
EnableAutoSyncResource *bool `json:"enable_auto_sync_resource"`
}
type SProjectMappingResourceInput struct {
@@ -405,6 +401,8 @@ type CloudaccountUpdateInput struct {
ReadOnly bool `json:"read_only"`
Currency string `json:"currency"`
EnableAutoSyncResource *bool `json:"enable_auto_sync_resource"`
}
type CloudaccountPerformPublicInput struct {

Some files were not shown because too many files have changed in this diff Show More