Compare commits

...

886 Commits

Author SHA1 Message Date
wanyaoqi
f4c6eadae8 fix(scheduler): optimize get guests by hosts ids (#20700) 2024-07-02 00:16:51 +08:00
wanyaoqi
9340c134e5 feat(host): support run guest with qemu 9.0.1 (#20691)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-07-02 00:14:41 +08:00
wanyaoqi
d9bdde8fe0 fix(region,host): migrate converted servers (#20697) 2024-07-01 23:55:35 +08:00
屈轩
581a5e9e32 fix(region): security group rule create (#20696) 2024-07-01 11:31:43 +08:00
Jian Qiu
9492b740df feature: support baremetal profile (#20689)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-30 22:23:17 +08:00
屈轩
6366d35523 fix(region): support eip search (#20684) 2024-06-28 15:58:48 +08:00
屈轩
acba8d26ca fix(log): add rate log type (#20679) 2024-06-28 14:49:33 +08:00
wanyaoqi
721a6cf06d fix(region): convert to kvm overwirte networks (#20666) 2024-06-27 20:39:03 +08:00
wanyaoqi
10f71280e2 fix(region): login account allow startwith capital letter (#20669) 2024-06-27 20:38:20 +08:00
屈轩
2d16104a1c fix(region): vendor update for qcloud tencentos server (#20664) 2024-06-27 15:39:10 +08:00
wanyaoqi
fb37d022a8 feat(region): add batch convert precheck (#20658)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-06-26 21:20:00 +08:00
wanyaoqi
62659d3dd1 fix(host): delete snapshot on guest deleted (#20642) 2024-06-26 21:18:59 +08:00
Zexi Li
6ebbe83f05 fix(climc,webconsole): use OS_AUTH_TOKEN for cloud shell running inside compose environment (#20648) 2024-06-26 12:12:05 +08:00
屈轩
149348b87f fix(region): waf regexset fetch error (#20647) 2024-06-26 11:18:18 +08:00
Jian Qiu
9bd48628db fix: vmware probe host networks (#20627)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-26 11:00:06 +08:00
屈轩
60c03355d0 fix(region): vendor update for qcloud nat sync (#20639) 2024-06-25 15:56:45 +08:00
Zexi Li
a154a61a42 optimize(glance): wrap error of saving image (#20632) 2024-06-25 14:21:21 +08:00
wanyaoqi
f40c766991 fix(region): scheduler forecast before convert to kvm (#20608) 2024-06-25 11:02:24 +08:00
wanyaoqi
5ea9f040b8 fix(glance): sync service options after vmware detected (#20605) 2024-06-25 10:58:05 +08:00
wanyaoqi
11ee966fbc Fix/deploy reset password support loginaccount (#20594)
* fix(host): lvm resize add encrypt support

* fix(region): deploy reset password add loginaccount
2024-06-25 10:56:44 +08:00
屈轩
b14879faab fix(region): vendor update for qcloud nat capability (#20631) 2024-06-25 10:53:44 +08:00
屈轩
74492ab199 fix(region): natgateway api upgrade (#20624) 2024-06-24 14:59:51 +08:00
Zexi Li
0d8073389d fix(monitor): add difference tags for each series (#20620) 2024-06-22 22:06:09 +08:00
Zexi Li
c4970bb90d fix(apigateway): compose environment without k8s service (#20615) 2024-06-21 16:38:11 +08:00
Zexi Li
794047c67e feat(dhcprelay): add Dockerfile (#20614) 2024-06-21 13:56:27 +08:00
Zexi Li
4e6702e05d fix(logger): add rejected action i18n translation (#20599) 2024-06-20 15:00:59 +08:00
屈轩
5deef95a67 fix(region): auto rename when change resource owner with same name (#20593) 2024-06-20 14:04:54 +08:00
Jian Qiu
fa2a2bea18 fix: clone dashboard parameters (#20589)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-20 07:54:20 +08:00
wanyaoqi
1ded6bccd0 fix(region): allow kvm vmware reuse network address (#20584)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-06-20 06:27:58 +08:00
Zexi Li
7d75080c8e feat(monitor): add reducer of AlertRecordRule (#20580) 2024-06-19 19:19:53 +08:00
Zexi Li
e5c56d1bfd feat(log): add i18n consts for itsm service (#20574) 2024-06-19 15:34:59 +08:00
Jian Qiu
51de4f7059 fix: add predefined log policy (#20571)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-19 09:33:55 +08:00
Zexi Li
ac8ad4b494 fix(host-deployer): ignore fatal exit when host.conf not exists (#20559) 2024-06-18 20:26:59 +08:00
屈轩
47ea1c0ca7 fix(region): qcloud permission (#20555) 2024-06-17 14:25:05 +08:00
Jian Qiu
aacaf4e34f fix: cleanup compute options 20240615 (#20549)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-17 00:42:14 +08:00
wanyaoqi
9ec1d86a39 fix(region): convert to esxi fill network params (#20492)
Deploy converted guest after guest created
2024-06-17 00:41:24 +08:00
wanyaoqi
2ff45831c0 fix(region): insert iso sync guest status (#20535) 2024-06-16 22:59:45 +08:00
wanyaoqi
7d7ca5bdc4 fix(region,host): isolated device batch sync (#20536) 2024-06-14 19:39:45 +08:00
Jian Qiu
3cab927394 fix: enable image cache cleanup by default (#20532)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-14 18:14:01 +08:00
gouqi11
d0e76569b5 fix(notify): add mobile verify (#20521)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-06-13 18:59:45 +08:00
gouqi11
81e8a49790 fix(notify): fix mobile validate (#20511)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-06-11 14:18:07 +08:00
Zexi Li
a0c93e3803 fix(region): container is not started when pod's flavor changed (#20490) 2024-06-07 15:04:42 +08:00
wanyaoqi
8591c6c47b fix(host): parse qga command and args (#20507) 2024-06-07 15:03:52 +08:00
wanyaoqi
00ad01ba9b fix(host-deployer): extend volume before extend filesystem (#20502) 2024-06-06 13:37:16 +08:00
Jian Qiu
b134d33338 fix: disk backup details missing components (#20497)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-06 13:33:43 +08:00
Zexi Li
c94411a57f feat(region,baremetal,climc): support baremetal root disk matcher (#20474) 2024-06-05 00:17:02 +08:00
屈轩
b5e875bcd7 fix(region): update cachedimage limit (#20473) 2024-06-04 20:41:55 +08:00
屈轩
e8ce72acb1 fix(baremetal-agent): avoid dead lock (#20477) 2024-06-04 18:04:52 +08:00
屈轩
9e5ab20cf4 fix(keystone): show user group info for user (#20469) 2024-06-04 15:18:27 +08:00
Jian Qiu
656de3be55 fix: disable webconsole watermark by default (#20462)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-06-04 00:48:56 +08:00
屈轩
73103a93f3 fix(keystone): avoid sync remove disabled ldap user (#20438) 2024-06-04 00:48:15 +08:00
wanyaoqi
4e3feec902 fix(host-deployer): deploy telegraf systemd service type simple (#20458) 2024-06-03 19:51:21 +08:00
wanyaoqi
64a7e7c268 fix(host-deployer): split guest dns by comma (#20450) 2024-06-03 19:15:44 +08:00
屈轩
73c30aa8ae fix(keystone): enable user (#20455) 2024-06-03 18:07:04 +08:00
屈轩
5b4013114e fix(region): sync waf ssl and cc list (#20447) 2024-06-03 16:01:32 +08:00
Zexi Li
6bef36bcac feat(monitor): remove precision of float when using max or min function (#20431) 2024-06-01 20:41:05 +08:00
屈轩
19e064d887 fix(keystone): avoid panic (#20435) 2024-06-01 17:15:16 +08:00
wanyaoqi
d5eed29ac1 fix(region): storagecacheresource panic on FetchCustomizeColumns (#20427) 2024-05-31 17:53:51 +08:00
gouqi11
5de92baa9d fix(notify): message add medium tag (#20421)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-05-31 10:39:20 +08:00
Jian Qiu
12668a71cb fix: haproxy check parammeters with default value (#20417)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-31 10:20:19 +08:00
屈轩
526b3f55d1 fix(region): oracle storage should be emulated (#20414) 2024-05-30 20:40:21 +08:00
Jian Qiu
db48b7519b fix: glance import xz compressed images (#20409)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-30 19:17:27 +08:00
Zexi Li
03494857be fix: mv filterclause from pkg to onecloud (#20405)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-30 16:03:33 +08:00
wanyaoqi
ecad5735c5 fix(region,host): slvm default deactivate on hosts (#20381) 2024-05-30 15:03:48 +08:00
gouqi11
bbed855100 fix(notify): change receiver owner (#20399)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-05-30 11:47:07 +08:00
Zexi Li
55e04f3ba6 feat(climc): feature config (#20394) 2024-05-30 10:48:15 +08:00
屈轩
a7b5f47ac7 fix(region): vendor update for web app ip addr sync (#20393) 2024-05-29 18:36:54 +08:00
屈轩
8545faf413 fix(region): vendor update (#20390) 2024-05-29 17:56:13 +08:00
Zexi Li
8c9357ac99 fix(host): wrap disk probed error (#20386) 2024-05-29 17:44:11 +08:00
Zexi Li
ab9f65fed2 fix(monitor): detach alert (#20374) 2024-05-28 09:59:55 +08:00
Zexi Li
cb01f13b53 fix(monitor): multiple monitor resource alert (#20367) 2024-05-27 15:45:03 +08:00
Zexi Li
913169f7c4 fix(monitor): multiple monitor resource alert (#20364) 2024-05-27 15:44:14 +08:00
屈轩
c75c77e405 fix(region): vendor update for sqlchemy click decimal field (#20363) 2024-05-27 10:08:01 +08:00
Jian Qiu
6b53d47253 fix: allow update network server_type (#20355)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-24 20:21:39 +08:00
屈轩
ec11fc7b59 fix(region): distinct fields (#20358) 2024-05-24 20:18:57 +08:00
Jian Qiu
fb39f7c3a1 fix: secgroup init rule CIDR should be empty for both ipv4 and ipv6 (#20346)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-24 10:47:32 +08:00
屈轩
dabf9b4f49 fix(region): account read only (#20345) 2024-05-24 10:00:50 +08:00
屈轩
f5cf42a511 fix(region): vendor update for waf info sync (#20340) 2024-05-22 20:37:50 +08:00
屈轩
78a18320d1 fix(region): currency rate exchange (#20335) 2024-05-21 19:22:04 +08:00
屈轩
f91ceb84b1 fix(region): sync public ip convert eip (#20327) 2024-05-21 15:36:41 +08:00
屈轩
b0ff819b22 fix(region): vendor update for aliyun waf (#20331) 2024-05-21 15:19:24 +08:00
屈轩
dece32cbe8 fix(region): add currency rate exchange (#20321) 2024-05-20 14:51:30 +08:00
屈轩
a21dba1d17 fix(region): vendor update for qcloud waf (#20310) 2024-05-17 15:37:02 +08:00
屈轩
24ac759245 fix(region): webapp custom domains (#20304) 2024-05-16 16:16:19 +08:00
屈轩
b8b48b4d6e fix(region): query distinct fields (#20300) 2024-05-16 15:24:33 +08:00
屈轩
a9c166d8fd fix(region): set cloud provider disconnect when sync region error (#20291) 2024-05-16 10:01:43 +08:00
Jian Qiu
6546056fbf fix: hostbackupstorage climc subcmds (#20286)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-15 18:03:39 +08:00
屈轩
b65abfe76a fix(region): remove waf cache (#20283) 2024-05-15 17:35:14 +08:00
wanyaoqi
cafb619a9f fix(region,host): slvm misc fix (#20270) 2024-05-15 10:45:59 +08:00
屈轩
cdde2bafa1 fix(region): vendor update for web app (#20269) 2024-05-14 20:57:39 +08:00
屈轩
7f11f43f0f fix(region): azure web app (#20266) 2024-05-14 19:17:09 +08:00
wanyaoqi
422c3aeaba fix(region): return origin error on fetch joint item failed (#20252) 2024-05-13 17:51:21 +08:00
Jian Qiu
fb5da2667a fix: ceph stats backward compatible with ceph 12.x (#20221)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-10 14:55:10 +08:00
Jian Qiu
84b8111341 fix: storagecachedimages details speedup (#20232)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-10 14:54:00 +08:00
Jian Qiu
c432a59298 fix: cachedimage sync tenant_id (#20237)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-10 14:52:43 +08:00
屈轩
f7b227274b fix(region): zstack shared block storage (#20226) 2024-05-09 14:25:52 +08:00
Jian Qiu
b13b0725e1 feature: automatically clean obsolete images from host iamge cache (#20218)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-09 12:11:17 +08:00
gouqi11
641410bf35 fix(region): add modelarts capability (#20216)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-05-08 19:59:06 +08:00
屈轩
242b87f395 fix(region): vendor update for azure lb sync (#20213) 2024-05-08 19:18:00 +08:00
Zexi Li
7b376aa537 feat(host): skip calculating checksum for cached image when format is TGZ (#20198) 2024-05-08 12:21:17 +08:00
屈轩
da16872cfd fix(climc): oraclecloud feature (#20203) 2024-05-06 19:17:55 +08:00
Jian Qiu
98367e7f47 fix: set disk status when requesting disk reset (#20194)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-05-04 09:08:50 +08:00
屈轩
5366526d0e fix(region): add enable auto sync resource field (#20189) 2024-04-30 19:28:11 +08:00
屈轩
547680a6e2 fix(region): remove storagecachedimage (#20186) 2024-04-30 15:24:24 +08:00
Jian Qiu
fff5cd1a23 fix(hostman): change userdata.sh mode (#20183)
Co-authored-by: liaoxiaomeng <liaoxiaomeng@hotmail.com>
2024-04-30 12:44:09 +08:00
wanyaoqi
4765550813 fix(host): ignore disk not found on disk delete handler (#20175) 2024-04-30 07:13:34 +08:00
Zexi Li
a981235aed fix(monitor): multiple metrics query of alert (#20169) 2024-04-28 19:05:50 +08:00
屈轩
7996cce2e9 fix(region): update public cloud provider (#20166) 2024-04-28 18:28:12 +08:00
Zexi Li
a81ca98f1d feat(monitor): support multiple metrics alert (#20156) 2024-04-28 11:35:40 +08:00
wanyaoqi
b40122f9d3 Fix/host misc fix 0425 (#20152)
* 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:38 +08:00
Zexi Li
3c977a1f4a fix(monitor): alert panic (#20147) 2024-04-26 12:19:01 +08:00
Zexi Li
e556efa8b0 fix(monitor): filter alerts by monitor_resource_id (#20135) 2024-04-25 17:06:52 +08:00
Zexi Li
795ebbd5e9 fix(monitor): query monitor_resource_alert by monitor_resource_id is not working (#20130) 2024-04-25 15:48:44 +08:00
屈轩
7ce25f00bd fix(region): allow update hostname (#20127) 2024-04-24 18:40:53 +08:00
屈轩
b49c22b749 fix(region): sync hostname (#20124) 2024-04-24 17:33:40 +08:00
屈轩
a21370c96a fix(mcclient): read me (#20117) 2024-04-24 12:22:08 +08:00
屈轩
3ffea07d31 fix(region):auto create project (#20104) 2024-04-22 19:26:57 +08:00
Jian Qiu
9b13891c13 fix: wrong private static route format (#20089)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-22 14:52:24 +08:00
Jian Qiu
dd4095630d fix: guest stop revisit (#20093)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-22 14:51:40 +08:00
屈轩
aa2c39202a fix(region): show more error info when sync nic error (#20099) 2024-04-22 14:37:32 +08:00
屈轩
ecba5d4546 fix(region): show ip out of range details error (#20083) 2024-04-19 18:30:26 +08:00
wanyaoqi
3eb713bffe fix(regin,host): delete snapshots after stream complete (#20084) 2024-04-19 18:27:09 +08:00
Jian Qiu
386fadb407 fix: backup storage access containd by hosts (#20063)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-19 07:20:33 +08:00
wanyaoqi
7674b9fafa fix(host): resize lvm disk (#20046) 2024-04-19 07:18:25 +08:00
屈轩
698cc2f99a fix(region): account disconnect (#20078) 2024-04-18 20:23:54 +08:00
屈轩
acfa5e3634 fix(cloudid): add volcengine sp metadata (#20075) 2024-04-18 18:02:50 +08:00
屈轩
b08bb79f0b fix(region): sync bucket status (#20071) 2024-04-18 15:49:59 +08:00
屈轩
081886c9c6 fix(region): avoid skip zone purge (#20066) 2024-04-18 15:39:25 +08:00
屈轩
733a684671 fix(region): vendor update for code generate (#20059) 2024-04-18 13:22:44 +08:00
屈轩
6336c5858f fix(cloudmon): oracle metric collect (#20056) 2024-04-18 11:33:02 +08:00
屈轩
c0822a43d6 fix(region): vendor update for oracle monitor (#20044) 2024-04-17 18:30:50 +08:00
屈轩
7a2c092548 fix(cloudmon): vendor update for support oracle metric (#20039) 2024-04-17 15:25:57 +08:00
Zexi Li
d8fe2ce5dd Merge pull request #20013 from wanyaoqi/fix/custom-pci-device
fix(region,host): custom device model add auto detect option
2024-04-17 10:27:36 +08:00
Zexi Li
6415beac2b Merge pull request #19994 from wanyaoqi/automated-cherry-pick-of-#19993-upstream-release-3.11
Automated cherry pick of #19993: fix(host): sriov bond
2024-04-17 10:26:51 +08:00
屈轩
a14b932208 fix(region): remove dirty code (#20034) 2024-04-17 10:11:28 +08:00
Zexi Li
b0351bc879 Merge pull request #19999 from wanyaoqi/fix/new-pci-device
feat(host): NewPciDevice add executor
2024-04-16 18:25:04 +08:00
Zexi Li
bb876962f6 Merge pull request #19992 from wanyaoqi/automated-cherry-pick-of-#19991-upstream-release-3.11
Automated cherry pick of #19991: feat(region,host): add disk migrate support
2024-04-16 18:22:37 +08:00
Zexi Li
5a580cbe54 Merge pull request #19998 from swordqiu/automated-cherry-pick-of-#19996-upstream-release-3.11
Automated cherry pick of #19996: fix: disk post create not inherit upper class
2024-04-16 18:20:43 +08:00
Zexi Li
86d4b45ea6 Merge pull request #20025 from wanyaoqi/fix/gpu-probe
fix(host): fix gpu device vendor check strategy
2024-04-16 18:18:00 +08:00
屈轩
3c5f09fdab fix(region): support delete huawei prepaid resource (#20031) 2024-04-16 18:08:15 +08:00
屈轩
53ae0e2f02 fix(region): avoid skip region purge (#20022) 2024-04-16 16:44:16 +08:00
屈轩
7be62a8e88 fix(region): skip not implement error (#20019) 2024-04-16 16:43:30 +08:00
Zexi Li
6c4532e581 Merge pull request #20008 from swordqiu/automated-cherry-pick-of-#20006-upstream-release-3.11
Automated cherry pick of #20006: fix: fail to create encrypted nfs disk
2024-04-16 16:00:43 +08:00
Zexi Li
5c42f663eb Merge pull request #19989 from swordqiu/automated-cherry-pick-of-#19987-upstream-release-3.11
Automated cherry pick of #19987: fix: userdata not executable due to umask
2024-04-16 15:57:26 +08:00
wanyaoqi
32e1d6cdd1 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:50:55 +08:00
wanyaoqi
fec1c01cec fix(region,host): custom device model add auto detect option
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-04-16 12:31:16 +08:00
Qiu Jian
725d952f83 fix: fail to create encrypted nfs disk 2024-04-16 00:18:39 +08:00
wanyaoqi
c71e819280 feat(region,host): add disk migrate support 2024-04-15 22:24:01 +08:00
Qiu Jian
bedb0c0a6a fix: disk post create not inherit upper class 2024-04-15 21:47:04 +08:00
wanyaoqi
365de1be8b feat(host): NewPciDevice add executor 2024-04-15 21:45:04 +08:00
wanyaoqi
0ebd7370d1 fix(host): init from existing guest load cpuset 2024-04-15 18:54:44 +08:00
wanyaoqi
f7dc234099 fix(host): detect sriov bond nics 2024-04-15 18:54:43 +08:00
Qiu Jian
2338fd1e34 fix: userdata not executable due to umask 2024-04-15 17:23:50 +08:00
屈轩
66b58af9bc fix(region): simplfy cached-image-list filter (#19986) 2024-04-15 15:50:16 +08:00
屈轩
027f5749fa fix(region): allow not idle account sync (#19982) 2024-04-15 14:10:39 +08:00
Jian Qiu
b7ddcc7ba4 fix: bond interface missing default gateway (#19954)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-15 10:37:23 +08:00
屈轩
42428ecd60 fix(image): set image upload download timeout 4 hour (#19978) 2024-04-15 10:13:57 +08:00
屈轩
72ece6d698 fix(region): sync ksyun tag (#19974) 2024-04-14 13:02:11 +08:00
屈轩
2258c9e15f fix(region): vendor update for vpc not found error (#19970) 2024-04-12 20:52:33 +08:00
屈轩
d5ac3657e8 fix(region): vendor update 0412 (#19963) 2024-04-12 18:26:17 +08:00
屈轩
bb3f183872 fix(region): support ksyun tag sync (#19957) 2024-04-12 12:05:29 +08:00
Jian Qiu
75fd08aef0 fix: netplan empty bond address (#19940)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-11 18:10:40 +08:00
屈轩
9963ef5684 fix(region): vendor update (#19948) 2024-04-11 15:06:53 +08:00
屈轩
eaed04d940 fix(region): avoid purge zone (#19938) 2024-04-11 13:58:00 +08:00
Zexi Li
aeab217763 Merge pull request #19934 from zexi/automated-cherry-pick-of-#19932-upstream-release-3.11
Automated cherry pick of #19932: feat(region,climc): support disk-rebuild
2024-04-11 12:09:04 +08:00
Zexi Li
141b03667b Merge pull request #19898 from swordqiu/hotfix/qj-unique-host-nic-index
fix: host nic index should be unique
2024-04-11 11:37:37 +08:00
Zexi Li
9e5b1a681c Merge pull request #19929 from swordqiu/automated-cherry-pick-of-#19928-upstream-release-3.11
Automated cherry pick of #19928: fix: disable disk serial for esxi vm on release/3.10
2024-04-11 11:35:06 +08:00
Zexi Li
5664981943 feat(region,climc): support disk-rebuild 2024-04-11 11:17:06 +08:00
Qiu Jian
121e048a26 fix: disable disk serial for esxi vm on release/3.10 2024-04-11 01:18:31 +08:00
屈轩
c3e5304a6b fix(region): avoid purge regions (#19924) 2024-04-10 17:06:15 +08:00
Qiu Jian
8159a6d86c fix: host nic index should be unique 2024-04-10 01:33:02 +08:00
gouqi11
2de0bf27f5 update vendor (#19917)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-04-09 19:47:34 +08:00
屈轩
9e9a45d986 fix(region): clean external cachedimage (#19912) 2024-04-09 17:26:17 +08:00
gouqi11
cc475e663c update vendor:ksyun ecs (#19905)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-04-09 11:51:53 +08:00
屈轩
832c5ada8d fix(region): show local task stack info (#19902) 2024-04-09 11:51:03 +08:00
屈轩
a6f1402b94 fix(monitor): remove useless code (#19897) 2024-04-08 11:54:08 +08:00
wanyaoqi
cbada729be feat: lvm snapshots (#19844)
* fix(region,host): remove snapshot fake delete state

* feat(region,host): lvm snapshot support
2024-04-08 02:55:31 +08:00
Jian Qiu
a764ddedfa fix: fail to detect lv by megacli64 and storecli (#19880)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-08 00:26:55 +08:00
屈轩
f935d2a62d fix(region): remove qcloud sync cache (#19891) 2024-04-07 16:45:10 +08:00
屈轩
4dd874e0be fix(glance): image upload timeout (#19889) 2024-04-07 15:29:46 +08:00
屈轩
beeae3c163 fix(region): return error for query guest network (#19886) 2024-04-07 14:16:23 +08:00
屈轩
9eae3cf564 fix(region): add cloud account sync batch size options (#19877) 2024-04-03 14:39:04 +08:00
屈轩
f2f78a10ed fix(region): prepare regions by prefix (#19873) 2024-04-03 10:15:15 +08:00
屈轩
164ea30840 fix(region): total count rds by zone id (#19867) 2024-04-02 20:32:57 +08:00
屈轩
036aca1569 fix(region): vendor update for region sync (#19864) 2024-04-02 20:16:30 +08:00
屈轩
0b82fcf60d fix(cloudid): vendor update for ksyun iam (#19862) 2024-04-02 20:03:47 +08:00
gouqi11
9ec9f3e14f fix(notify): clean notificationGroup after send (#19859)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-04-02 18:40:17 +08:00
屈轩
4f43e6d121 fix(cloudid): vendor update form volcengine iam (#19856) 2024-04-02 14:39:18 +08:00
Zexi Li
f57e69e6b3 Merge pull request #19851 from swordqiu/automated-cherry-pick-of-#19850-upstream-release-3.11
Automated cherry pick of #19850: fix: idp list query filter by sso_domain
2024-04-02 10:36:04 +08:00
Qiu Jian
0f0fd934e7 fix: idp list query filter by sso_domain 2024-04-02 01:30:25 +08:00
Jian Qiu
b065b2b77d fix: trigger project sync by informer (#19837)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-04-02 00:23:52 +08:00
屈轩
e27dbf1266 fix(cloudid): vendor update (#19847) 2024-04-01 11:39:28 +08:00
屈轩
501f0c9393 fix(cloudid): model reflection (#19845) 2024-04-01 11:09:02 +08:00
Zexi Li
7b78f77b99 Merge pull request #19838 from wanyaoqi/fix/mkfs-ext4-resizefs
fix(host-deployer): add ext4 usage type options
2024-04-01 10:14:22 +08:00
屈轩
a220222d17 fix(region): billing resource check (#19841) 2024-04-01 10:06:19 +08:00
wanyaoqi
8508b8551a fix(host-deployer): add ext4 usage type options
resize fs not required find rootfs.
format ext4 partitions select usage type by part size.

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-03-31 12:33:20 +08:00
Zexi Li
895e46256b Merge pull request #19831 from wanyaoqi/automated-cherry-pick-of-#19830-upstream-release-3.11
Automated cherry pick of #19830: fix(host-deployer): deploy guest arm kernel path fix
2024-03-29 16:15:09 +08:00
wanyaoqi
7d0bcfbea2 fix(host-deployer): deploy guest arm kernel path fix 2024-03-29 16:11:15 +08:00
屈轩
ade927c9dd fix(region): vendor update (#19827) 2024-03-29 10:38:01 +08:00
屈轩
ffac25beb0 fix(region): cloudpods region sync (#19821) 2024-03-28 15:33:42 +08:00
Zexi Li
2e78621401 Merge pull request #19810 from wanyaoqi/automated-cherry-pick-of-#19803-upstream-release-3.11
Automated cherry pick of #19803: fix(host): delete lvm disk active first
2024-03-27 20:23:24 +08:00
屈轩
efbcaf5532 fix(region): avoid panic (#19816) 2024-03-27 15:05:18 +08:00
wanyaoqi
d440a57f6e fix(host): resize slvm disk 2024-03-26 22:50:46 +08:00
wanyaoqi
5841593a55 fix(host): delete lvm disk active first 2024-03-26 22:50:46 +08:00
Jian Qiu
e918d6d0f1 fix: host-type-count sql error (#19802)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-26 18:57:40 +08:00
屈轩
6f73da08b7 fix(climc): remove useless code (#19799) 2024-03-26 17:04:09 +08:00
gouqi11
9e10ad4e21 feat(excelutils): support read file data (#19795)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-03-26 14:53:56 +08:00
Jian Qiu
d690f923ed fix: create lb listener rules fail due to domain not found (#19786)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-26 09:49:56 +08:00
wanyaoqi
87e5add5e8 fix(ansibleserver): update file repo (#19773) 2024-03-26 09:48:27 +08:00
Jian Qiu
ff1ea0f7ef fix: server skus ignore seting SetModelManager (#19778)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-26 09:47:42 +08:00
Jian Qiu
719fd389e3 fix: fail to parse ipv6 addr of fc00::1:1004:ffff:ffff:ffff:ffff (#19782)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-26 09:46:35 +08:00
屈轩
85dac7d7cd fix(region): filter cloudprovider by zone (#19789) 2024-03-25 19:23:19 +08:00
屈轩
85416d828d fix(vpcagent): signal killed (#19762) 2024-03-22 09:37:29 +08:00
屈轩
059d3273b2 fix(vpcagent): prevent the security group deletion rule from taking effect (#19759) 2024-03-21 20:39:18 +08:00
屈轩
bf417ce9f0 fix(notify): simplify receiver api (#19765) 2024-03-21 20:07:39 +08:00
屈轩
def5478dda fix(region): allow delete aliyun prepaid vm (#19768) 2024-03-21 20:07:17 +08:00
Zexi Li
0bc7f8f80a Merge pull request #19730 from wanyaoqi/fix/lvm-storage-cache
fix(region,host): lvm storage misc fix
2024-03-21 19:53:21 +08:00
屈轩
8b7ab5cff2 fix(region): skip set lost name when purge deleted vm (#19753) 2024-03-20 18:20:09 +08:00
Zexi Li
8685f3b17b Merge pull request #19750 from zexi/extra-hook
feat(cloudcommon): support extra hook for db model
2024-03-20 15:04:23 +08:00
Zexi Li
a976931ea5 feat(cloudcommon): support extra hook for db model 2024-03-20 11:43:35 +08:00
屈轩
68eeb1ba12 fix(region): esxi vm desc sync (#19747) 2024-03-19 15:49:34 +08:00
屈轩
3eed5b59c4 fix(region): support create vmware vm with desc (#19740) 2024-03-18 09:47:18 +08:00
屈轩
10e7e8cf22 fix(region): sync max priority project tag (#19737) 2024-03-15 19:10:34 +08:00
wanyaoqi
68c47b4ee9 fix(region,host): lvm storage misc fix
- add some lvm storage create check
- fix slvm storage image cache not correct

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-03-14 22:12:20 +08:00
wanyaoqi
ce876e9ab2 fix(region): check normal type nic is null (#19728) 2024-03-14 17:57:27 +08:00
屈轩
dd580c9af1 fix(esxi-agent): create vmware vm with suitable version (#19726) 2024-03-14 15:54:17 +08:00
Zexi Li
87c8461960 Merge pull request #19724 from ioito/automated-cherry-pick-of-#19723-upstream-release-3.11
Automated cherry pick of #19723: fix(region): avoid duplicate zone name
2024-03-13 20:12:09 +08:00
Zexi Li
bc478687a9 Merge pull request #19711 from wanyaoqi/fix/misc-fix-240312
fix(host): gpu probe check vendor is amd or nvidia
2024-03-13 20:05:53 +08:00
Zexi Li
84174f58f0 Merge pull request #19715 from swordqiu/automated-cherry-pick-of-#19714-upstream-release-3.11
Automated cherry pick of #19714: fix: tag filter with no value revisit
2024-03-13 20:04:55 +08:00
屈轩
e4ab58f7eb fix(region): filter disks by guest status (#19721) 2024-03-13 19:10:54 +08:00
Qu Xuan
41db55345b fix(region): avoid duplicate zone name 2024-03-13 19:08:14 +08:00
屈轩
ebf5e3cf90 fix(region): avoid panic when network is nil (#19718) 2024-03-13 11:58:50 +08:00
Qiu Jian
9c303a1795 fix: tag filter with no value revisit 2024-03-12 21:45:28 +08:00
wanyaoqi
70fb9a76b2 fix(host): gpu probe check vendor is amd or nvidia 2024-03-12 19:36:46 +08:00
屈轩
25a2f3a3ed fix(webconsole): sftp download utf8 filename (#19709) 2024-03-12 18:29:06 +08:00
Jian Qiu
299846783d fix: host-deploy options struct consistent with host options (#19695)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-12 13:35:40 +08:00
Zexi Li
5cf7946b33 Merge pull request #19689 from swordqiu/automated-cherry-pick-of-#19688-upstream-release-3.11
Automated cherry pick of #19688: fix: make authManager a singleton
2024-03-12 10:46:44 +08:00
屈轩
153ea3a1d2 fix(region): ipv6 cidr sync for network (#19703) 2024-03-11 17:52:28 +08:00
屈轩
47baaf6297 fix(region): avoid update network dns panic (#19698) 2024-03-11 10:57:49 +08:00
屈轩
69202744a2 fix(webconsole): show link file info (#19692) 2024-03-11 09:43:48 +08:00
Qiu Jian
b4039038a4 fix: make authManager a singleton 2024-03-10 10:09:14 +08:00
Jian Qiu
54925e8de4 fix: webconsole command log empty opstime (#19683)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-10 07:24:34 +08:00
Jian Qiu
31b3432189 fix: vpcagent always do full sync, disable incremental sync (#19629)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-10 07:23:25 +08:00
wanyaoqi
5bc8219e56 fix(host): qga set network flush ipv4 address (#19671) 2024-03-10 07:22:17 +08:00
Jian Qiu
69ec88a05f fix: network address details compatible with dameng (#19687)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-10 07:21:45 +08:00
Jian Qiu
be449a610a fix: support db checksum algorithm of SHA256 (#19681)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-09 14:57:47 +08:00
屈轩
d4d8028dea fix(region): vendor update for qcloud nat sync (#19677) 2024-03-08 18:13:43 +08:00
屈轩
0504084f25 fix(webconsole): sftp return file mode info (#19675) 2024-03-08 13:43:45 +08:00
Zexi Li
9d0380c5de Merge pull request #19669 from swordqiu/automated-cherry-pick-of-#19668-upstream-release-3.11
Automated cherry pick of #19668: fix: always add static routes for default nic master
2024-03-07 10:05:50 +08:00
Qiu Jian
6b26413077 fix: always add static routes for default nic 2024-03-06 19:54:21 +08:00
屈轩
7156c24d68 fix(scheduler): skip network exit check (#19665) 2024-03-06 19:10:43 +08:00
屈轩
70f666d262 fix(region): vendor update for sync azure network cidr (#19662) 2024-03-06 18:08:23 +08:00
屈轩
87c001b0b8 fix(region): exit no longer affects managed network (#19659) 2024-03-06 16:59:57 +08:00
屈轩
3b8acbc2e2 fix(webconsole): file mode (#19657) 2024-03-06 13:21:20 +08:00
Jian Qiu
c180066c95 fix: network ip match recode to fix dameng INET_ATON support (#19655)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-06 03:08:10 +08:00
Jian Qiu
73c3683529 fix: donot use insertOrUpdate for create joint resources (#19651)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-06 02:23:54 +08:00
wanyaoqi
0fbd11fa07 fix(host-deployer): support deploy encrypted disk (#19639) 2024-03-06 02:22:39 +08:00
wanyaoqi
8d5c516540 fix(host): backup guest dirty shutdown (#19621)
backup guest dirty shutdown master request sync status,
slave request dirty start.
2024-03-06 02:22:09 +08:00
wanyaoqi
7c6616d1dc feat(region,host): support shared driver by lvmlockd (#19611) 2024-03-06 02:10:23 +08:00
屈轩
d3017e5ca3 fix(region): dissociate eip when vm deleted (#19647) 2024-03-05 18:35:51 +08:00
屈轩
89307a4ae9 fix(region): sync account project (#19644) 2024-03-05 17:18:20 +08:00
屈轩
2818e47d90 fix(region): compatible with v3.9 vm cdrom (#19637) 2024-03-05 15:56:56 +08:00
屈轩
55d966bca9 fix(cloudmon): support ctyun vm metric (#19635) 2024-03-05 11:58:50 +08:00
Zexi Li
ed2dd1f548 Merge pull request #19632 from swordqiu/automated-cherry-pick-of-#19631-upstream-release-3.11
Automated cherry pick of #19631: fix: tokenCache newInformer fail
2024-03-05 10:29:50 +08:00
Qiu Jian
23ab9b6cd6 fix: tokenCache newInformer fail 2024-03-05 00:30:19 +08:00
屈轩
7cf03d7a7e fix(region): vendor update for azure associate type (#19625) 2024-03-04 20:09:18 +08:00
Jian Qiu
6e820b1945 Automated cherry pick of #19609: Hotfix/qj organization node label contains separator2 (#19610)
* fix: organization node label contains separator, round 2

* fix: hidden parent org nodes

---------

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-04 18:14:39 +08:00
屈轩
7467c6de6a fix(region): 未开启三级权限允许云账号更改项目 (#19613) 2024-03-04 13:14:22 +08:00
Jian Qiu
e79a81eb0a update vendor 20240303 (#19607)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-03-03 11:47:02 +08:00
gouqi11
d522db3f8c fix(influxdb): support set timeout (#19600)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-03-03 10:47:39 +08:00
屈轩
5ab009f7e9 fix(region): raw query with delete-all options (#19604) 2024-03-01 19:36:36 +08:00
屈轩
a35243f26c fix(region): avoid sync huawei lb backend panic (#19590) 2024-03-01 10:41:34 +08:00
屈轩
ed67e20b04 fix(region): ctyun api page size must le 50 (#19585) 2024-02-29 18:20:41 +08:00
屈轩
147af900c6 fix(region): add secgroup filter for rds and redis (#19583) 2024-02-29 17:02:02 +08:00
Jian Qiu
cf4e1fd15d fix: handle label separator in organization tag value (#19574)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-29 16:37:53 +08:00
Jian Qiu
45c399066f feature: dameng database support (#19571)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-29 16:37:30 +08:00
屈轩
cb77c0e21f fix(region): skip sync apsara expired time (#19580) 2024-02-29 16:08:14 +08:00
屈轩
b8db3e5f09 fix(keystone): domain-list with delete-all options (#19577) 2024-02-29 16:06:15 +08:00
屈轩
6581ab2202 fix(region): support huawei public nat (#19575) 2024-02-29 14:44:43 +08:00
屈轩
2fa97cd09a fix(notify): add capability for notify config (#19569) 2024-02-28 17:51:37 +08:00
屈轩
cd47b45f57 fix(region): remove useless code (#19567) 2024-02-28 16:49:48 +08:00
屈轩
8888107741 fix(keystone): optimized domain-list query (#19556) 2024-02-28 14:45:24 +08:00
wanyaoqi
6282060ab2 Fix/create from iso set os distro (#19547)
* fix(region): iso guest copy image props to metadata

* fix(region): always run host ping detect task
2024-02-28 14:16:28 +08:00
wanyaoqi
103ec2220e Fix/guest image live migrate (#19558)
* fix(host): slvm storage active on init

* fix(region): guest live migrate cache all of guestimage caches
2024-02-28 11:31:38 +08:00
Zexi Li
926b389f4e Merge pull request #19563 from zexi/automated-cherry-pick-of-#19561-upstream-release-3.11
Automated cherry pick of #19561: fix(scheduler): unsued key
2024-02-28 11:00:15 +08:00
Zexi Li
7cbff93e0d fix(scheduler): unsued key 2024-02-28 10:26:50 +08:00
gouqi11
52b08e6e3e fix(monitor): add target for suggestRuleListInput (#19554)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-02-26 20:18:50 +08:00
wanyaoqi
629c9982ab fix(region): update rescuing status to rescue (#19543) 2024-02-24 07:53:56 +08:00
wanyaoqi
e62b5c1fc2 feat(host): disable guest hpet timer by default (#19535)
The HPET was turned off by default purely because of issues with time
drifting on Windows guests. (See nova commit ba3fd16605.)
2024-02-24 07:53:28 +08:00
wanyaoqi
4513e4beb6 fix(host): load guest desc hpet and video1 dev (#19531) 2024-02-24 07:51:58 +08:00
Jian Qiu
9228a973a8 fix: support OpenCloudOS, OpenKylin, Alma, UOSDesktop (#19528)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-24 07:50:26 +08:00
屈轩
abe226008a fix(region): support secgroup ipv6 (#19542) 2024-02-23 16:57:07 +08:00
屈轩
341fe8d5a5 fix(keystone): support filter project by multi admin user (#19540) 2024-02-23 15:25:04 +08:00
屈轩
3a357b343d fix(keystone): support unset project admin user (#19538) 2024-02-23 15:08:20 +08:00
gouqi11
6186e73608 fix(util): fix excelutils set emptu cell (#19525)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-02-22 19:55:30 +08:00
屈轩
5cab69547a fix(region): sync lb secgroup (#19523) 2024-02-22 18:14:09 +08:00
屈轩
bac856527d fix(region): sync by external project with enable project sync (#19520) 2024-02-22 18:13:40 +08:00
屈轩
98a8d28e09 fix(region): refactor lb acl and cert (#19518) 2024-02-21 19:55:04 +08:00
屈轩
1c94dac7b6 fix(region): sync empty security groups (#19516) 2024-02-21 16:27:03 +08:00
屈轩
e2149d01b6 fix(region): vendor update for qcloud nat status (#19513) 2024-02-20 16:00:07 +08:00
屈轩
c51150e756 fix(region): sync regional secgrouop (#19511) 2024-02-20 15:43:47 +08:00
Jian Qiu
ca7621cfb0 fix: filter organization nodes by policy tags (#19507)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-20 09:53:19 +08:00
Jian Qiu
8321100c51 fix: policy update description panic (#19509)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-20 09:28:38 +08:00
wanyaoqi
af3daeafb1 fix(host): script start guest donot force restart on monitor timeout (#19504) 2024-02-19 20:52:27 +08:00
屈轩
b240047cce fix(cloudproxy): cloudproxy service auth first (#19501) 2024-02-19 12:08:28 +08:00
wanyaoqi
092eaf6870 feat(region,host): guest numa allocate (#19496) 2024-02-18 19:35:13 +08:00
Jian Qiu
85efe57b22 fix: create params with require_ipv6 (#19492)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-18 10:35:14 +08:00
屈轩
797f2cc6d9 fix(region): vendor update for openstack https support (#19494) 2024-02-18 10:22:39 +08:00
Jian Qiu
dffd27e2bc fix: invalid token request too frequent (#19488)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-17 19:00:12 +08:00
Jian Qiu
579cba8b6f fix: organization sync panic on nil pointer of weight (#19486)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-12 21:08:47 +08:00
Jian Qiu
bbf5c4afb3 fix: project tag tree sql revise (#19485)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-11 10:47:30 +08:00
Jian Qiu
d0304058b2 fix: IModelManager add NewQuery to initialize query with params (#19482)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-11 00:26:16 +08:00
Jian Qiu
97fc5258df fix: sync error (#19483)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-10 18:00:28 +08:00
Jian Qiu
0f2e11591f fix: avaialble address6 api timeout (#19480)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-10 16:30:29 +08:00
wanyaoqi
5bef00a3a8 fix(region,host): rescue mode update initramfs, vnc login no passwd (#19477) 2024-02-09 09:23:00 +08:00
wanyaoqi
38834f3b1f fix(host-deployer): elfherader fd leak (#19475) 2024-02-08 14:11:24 +08:00
屈轩
52404a26d9 fix(region): avoid panic when change-owner missing domain_id (#19472) 2024-02-08 10:51:26 +08:00
屈轩
31bade24e7 fix(region): add read only filter for account and provider (#19469) 2024-02-07 15:33:03 +08:00
Jian Qiu
f6a9b77698 fix: project tag value tree can return sum of any field (#19465)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-07 11:52:03 +08:00
屈轩
85b6ad8a34 fix(region): trim tag space (#19467) 2024-02-07 11:04:29 +08:00
wanyaoqi
2069906d7b fix(host-deployer): xfs unlock panic (#19458) 2024-02-06 00:32:29 +08:00
Jian Qiu
eef9e48e02 feature: allow manager to preapre query context (#19455)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-06 00:01:26 +08:00
屈轩
1bd5f73365 fix(region): qcloud disks delete when vm deleted (#19453) 2024-02-05 17:54:51 +08:00
屈轩
70c280af77 fix(climc): support set bill report for azure account (#19450) 2024-02-05 15:14:17 +08:00
屈轩
08f92a8d89 fix(region): cloudpods ipv6 sync (#19445) 2024-02-05 11:24:10 +08:00
屈轩
0c4b30335b fix(region): cloudpods deploy api (#19447) 2024-02-05 11:23:45 +08:00
Jian Qiu
f3f9fa9886 fix: tenant cache sync deleted projects (#19441)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-05 08:45:10 +08:00
屈轩
bf320a5b32 fix(region): support set network tags (#19439) 2024-02-04 18:05:15 +08:00
屈轩
c5dcc6fa1d fix(region): avoid informer panic (#19431) 2024-02-04 16:29:00 +08:00
屈轩
317b8b7a3b fix(region): avoid filesystem sync error (#19436) 2024-02-04 15:19:15 +08:00
屈轩
1456f31d45 fix(region): auto set provider project id when change account project info (#19433) 2024-02-04 11:49:59 +08:00
gouqi11
b2de0282f6 fix(scheduledtask): fix deletedResource task (#19428)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-02-04 10:42:53 +08:00
屈轩
9efb34f7c7 fix(webconsole): sort file list (#19409) 2024-02-03 23:28:40 +08:00
Jian Qiu
b03650d97f fix: fail to reset policy org_node_id to empty (#19426)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-03 23:19:53 +08:00
屈轩
31f6a4026d fix(region): auto create project by project mapping (#19407) 2024-02-02 17:37:00 +08:00
屈轩
74932360b5 fix(region): ipv6 free ip (#19418) 2024-02-02 17:15:18 +08:00
屈轩
629ca22509 fix(region): support public ipv6 addr sync (#19420) 2024-02-02 17:14:21 +08:00
Zexi Li
1e5d988346 Merge pull request #19422 from wanyaoqi/automated-cherry-pick-of-#19421-upstream-release-3.11
Automated cherry pick of #19421: fix(host): init from guest mem obj miss size
2024-02-02 16:53:39 +08:00
wanyaoqi
7662f88edc fix(host): init from guest mem obj miss size 2024-02-02 16:43:14 +08:00
Jian Qiu
a4758fbd15 fix: expand policy tags with org node tags (#19416)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-02 14:10:53 +08:00
gouqi11
c7d6b053e5 fix(commom): setStatus with notify hook (#19412)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-02-01 20:44:44 +08:00
屈轩
59dcb4260d fix(region): ipv6 filter (#19411) 2024-02-01 18:52:48 +08:00
屈轩
483a97e6ad fix(keystone): optimized user list (#19404) 2024-02-01 16:43:12 +08:00
Jian Qiu
9e61ae2c63 fix: allow binding organization ids to policy (#19399)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-01 10:58:50 +08:00
屈轩
d6925ac5a9 fix(webconsole): support host ssh (#19387) 2024-02-01 10:58:19 +08:00
Jian Qiu
84f88b705b fix: sync unknown guest status when host ping (#19384)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-02-01 10:57:41 +08:00
屈轩
d3ec086f9c fix(common): auto disable 3des cipher suites (#19392) 2024-02-01 10:57:03 +08:00
屈轩
6d3551745b fix(region): avoid panic (#19402) 2024-02-01 10:12:01 +08:00
屈轩
f56e34ce77 fix(region): vendor update for sync ipv6 (#19398) 2024-01-31 20:57:32 +08:00
屈轩
5d55f60453 fix(region): cloudpods esxi disk create (#19390) 2024-01-31 17:30:32 +08:00
屈轩
681a43d160 fix(region): support managed ipv6 (#19395) 2024-01-31 17:29:55 +08:00
屈轩
0dbaba06d4 fix(region): project mapping key match at end of list (#19381) 2024-01-31 15:05:29 +08:00
Jian Qiu
c7c6477798 fix: vmware change config with cpu sockets (#19375)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-31 15:04:47 +08:00
Zexi Li
cd45fd7e6b fix(baremetal): admin nic is reset when added secondly (#19377) 2024-01-30 16:17:56 +08:00
屈轩
afbd0f922f fix(region): cancel pending delete (#19373) 2024-01-30 14:12:45 +08:00
Zexi Li
5c61e4c46c Merge pull request #19369 from swordqiu/automated-cherry-pick-of-#19368-upstream-release-3.11
Automated cherry pick of #19368: fix: server change ip addr recode
2024-01-30 10:23:53 +08:00
屈轩
de25515eb0 fix(region): vendor update for optimized aliyun rds backup sync (#19371) 2024-01-29 18:07:45 +08:00
Qiu Jian
0464bf5239 fix: server change ip addr recode 2024-01-29 17:10:52 +08:00
屈轩
9eec520567 fix(webconsole): use common options (#19330) 2024-01-29 11:29:29 +08:00
Zexi Li
56869281c4 Merge pull request #19364 from swordqiu/automated-cherry-pick-of-#19363-upstream-release-3.11
Automated cherry pick of #19363: fix: validate policy violation when assign users for oidc IDP
2024-01-28 21:58:50 +08:00
Qiu Jian
78123d0335 fix: validate policy violation when assign users for oidc IDP 2024-01-27 18:17:23 +08:00
Zexi Li
9442b445d0 fix(apigateway): ignore empty rows when registering baremetal host (#19354) 2024-01-27 18:16:42 +08:00
Zexi Li
08fdf688d4 fix(climc): wire is required when using network-create (#19360) 2024-01-27 18:05:21 +08:00
wanyaoqi
775d70be15 fix(host-deployer): escape back quote (#19356) 2024-01-27 08:09:59 +08:00
Zexi Li
ab29fa4c70 Merge pull request #19339 from swordqiu/automated-cherry-pick-of-#19338-upstream-release-3.11
Automated cherry pick of #19338: fix: not resolve local domain with dns records
2024-01-26 16:05:18 +08:00
Zexi Li
21876d631c Merge pull request #19347 from wanyaoqi/fix/host-deployer-disconnect
fix(host-deployer): check sshclient is nil on disconnect
2024-01-26 16:04:02 +08:00
wanyaoqi
ed2a412ed2 fix(host-deployer): check sshclient is nil on disconnect 2024-01-26 12:08:33 +08:00
屈轩
9c2dd4b0ea fix(region): sync resource owner with auto-create-project options (#19320) 2024-01-26 11:14:22 +08:00
Zexi Li
a605f69560 Merge pull request #19344 from zexi/automated-cherry-pick-of-#19342-upstream-release-3.11
Automated cherry pick of #19342: optimized(scheduler): remove fillResidentTenants function loading data from db
2024-01-25 17:10:57 +08:00
Zexi Li
c8aed17eb2 optimized(scheduler): remove fillResidentTenants function loading data from db 2024-01-25 17:07:05 +08:00
Zexi Li
6a708c2c6a Merge pull request #19335 from zexi/automated-cherry-pick-of-#19334-upstream-release-3.11
Automated cherry pick of #19334: fix(baremetal): hardcode h3c ipmi lan channel to 1
2024-01-25 15:49:51 +08:00
Qiu Jian
fb91b1e3eb fix: not resolve local domain with dns records 2024-01-25 15:40:08 +08:00
Jian Qiu
45ee4b1b89 fix: ipv6 secgroup support (#19337)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-25 13:25:42 +08:00
Zexi Li
22e7a3383a fix(baremetal): hardcode h3c ipmi lan channel to 1 2024-01-25 11:54:02 +08:00
屈轩
fdf0c40119 fix(region): gcp secrule update (#19324) 2024-01-24 17:17:01 +08:00
屈轩
af4c02c0f1 fix(climc): optimized storagecache cmd (#19322) 2024-01-24 15:03:26 +08:00
Zexi Li
e18ad59800 Merge pull request #19316 from zexi/automated-cherry-pick-of-#19314-upstream-release-3.11
Automated cherry pick of #19314: fix(build): use telegraf-raid-plugin:release-1.6.5
2024-01-22 16:59:30 +08:00
Zexi Li
3ad45a3cf9 fix(build): use telegraf-raid-plugin:release-1.6.5 2024-01-22 16:50:36 +08:00
Jian Qiu
6f22beca3c fix(region): server change config input recode (#19300)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-22 11:33:09 +08:00
屈轩
826532c5f9 fix(region): avoid panic (#19311) 2024-01-19 19:31:15 +08:00
屈轩
dc8c06a037 fix(region): auto encrypt options password (#19308) 2024-01-19 19:19:47 +08:00
屈轩
c0909bdd53 fix(region): vendor update for aws image import (#19306) 2024-01-19 16:14:39 +08:00
屈轩
0cafaf7445 fix(region): eip sync with project (#19302) 2024-01-19 14:04:19 +08:00
gouqi11
c132ae0cd6 feat(region): support notify for guest_status changed (#19298)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-01-19 10:24:18 +08:00
gouqi11
bf6a035b53 feat(notify): SupportReceiverGetContactTypeByRoleId (#19296)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-01-19 10:14:35 +08:00
屈轩
4187111862 fix(region): huawe redis spec code update (#19294) 2024-01-18 18:23:06 +08:00
屈轩
d01474470c fix(region): check kvm vpc and security group relation (#19292) 2024-01-18 14:34:56 +08:00
屈轩
36254142a9 fix(region): huawei bucket create with usable regions (#19290) 2024-01-18 11:19:38 +08:00
gouqi11
15425550ef fix(region): add public_cloud_provider list (#19287)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-01-18 10:48:55 +08:00
Jian Qiu
cc1a5bcd2c fix: windows ipv6 support (#19280)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-17 19:47:34 +08:00
屈轩
e2e357f89c fix(climc): add bill report for volc account (#19284) 2024-01-17 14:51:16 +08:00
Jian Qiu
a42ce1792e fix: try resolve tenant by project id first (#19277)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-17 00:28:30 +08:00
Jian Qiu
8c50a52fe0 fix: automatically refresh invalid admin token (#19273)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-17 00:27:57 +08:00
Jian Qiu
72cd6e3e32 fix: dhcpv6 support in vpc network (#19271)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-17 00:27:36 +08:00
屈轩
c58a3fd48a fix(region): vendor update for pve vm sync (#19266) 2024-01-16 15:34:48 +08:00
屈轩
c1606f751d fix(region): esxi vm create with tags (#19263) 2024-01-16 14:25:54 +08:00
屈轩
8bea62e5b9 fix(region): dns record update with enabled params (#19261) 2024-01-15 19:47:24 +08:00
gouqi11
4b2509d72b feat(notify): support project notify (#19259)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-01-15 19:35:07 +08:00
Zexi Li
e5829292e9 Merge pull request #19258 from ioito/automated-cherry-pick-of-#19257-upstream-release-3.11
Automated cherry pick of #19257: fix(region): vendor update for aliyun security group rule create
2024-01-15 19:21:56 +08:00
ioito
e8f3e390ba fix(region): vendor update for aliyun security group rule create 2024-01-15 19:12:14 +08:00
屈轩
cef7656187 fix(region): avoid duplicate cachedimage insert (#19255) 2024-01-15 18:30:44 +08:00
Jian Qiu
3c6da1faac Automated cherry pick of #19249: Feature/qj ipv6 support (#19253)
* feature: ipv6 support

* fix: ipv6 support more

* fix: update vendor for ipv6 support

* fix: allow enable ipv6 on existing guestnetwork

---------

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-15 13:33:02 +08:00
wanyaoqi
3b313f11ab fix(host-deployer): add growpart resize partitions (#19251) 2024-01-15 12:14:41 +08:00
屈轩
3d703b9ed9 fix(region): huawei eip disassociate (#19244) 2024-01-12 19:32:08 +08:00
屈轩
05fda8da59 fix(region): avoid duplicate project create (#19241) 2024-01-12 19:16:17 +08:00
屈轩
27a9fab7cb fix(region): huawei disk refresh (#19238) 2024-01-12 15:53:29 +08:00
屈轩
d95380c6d1 fix(cloudmon): huawei metric pull (#19236) 2024-01-12 15:40:02 +08:00
屈轩
f543323b51 fix(region): vendor update for huawei rds create (#19232) 2024-01-11 19:04:18 +08:00
Jian Qiu
845123b1b0 fix: no fetch owner scope when GetProperty (#19230)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-11 18:58:52 +08:00
wanyaoqi
533b240a28 fix(host-deployer): add cmdline vsyscall=emulate on ramfs guest (#19223)
deploy fs on older system like centos 6, need emulate vsyscall.
otherwise will get error like:
    Code: Unable to access opcode bytes at 0xffffffffff6003d6.
2024-01-11 05:45:08 +08:00
Jian Qiu
416a26d12e fix: verbose api helper params (#19220)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-11 05:43:59 +08:00
wanyaoqi
53dc58dc69 feat(region,host): shared lvm storage (#19194) 2024-01-10 23:26:23 +08:00
Zexi Li
f40c4e0644 Merge pull request #19196 from wanyaoqi/fix/host-register-skip-virtual-functions
fix(host): host-agent register skip upload vf nics
2024-01-10 10:28:22 +08:00
Zexi Li
270c2ff5fd Merge pull request #19216 from wanyaoqi/automated-cherry-pick-of-#19215-upstream-release-3.11
Automated cherry pick of #19215: fix(host-deployer): deploy params has special char
2024-01-10 10:27:16 +08:00
Zexi Li
cff4a7adac Merge pull request #19214 from gouqi11/automated-cherry-pick-of-#19213-upstream-release-3.11
Automated cherry pick of #19213: fix(notify): fix host webhook err
2024-01-10 10:00:03 +08:00
wanyaoqi
7149904806 fix(host-deployer): deploy params has special char 2024-01-09 23:06:18 +08:00
马鸿飞
e941f84ce2 fix(notify): add actionTranslate 2024-01-09 19:23:50 +08:00
屈轩
8cf0b0e216 fix(region): skip sync used ip addr (#19208) 2024-01-09 17:50:29 +08:00
屈轩
9cce3064b3 fix(region): image project tags (#19211) 2024-01-09 17:49:58 +08:00
屈轩
3a9aab679e fix(region): avoid gcp secgroup delete failed (#19206) 2024-01-09 16:59:47 +08:00
屈轩
541464f035 fix(region): skip clear secgroup when delete vm (#19200) 2024-01-09 16:59:17 +08:00
wanyaoqi
abd0409f88 fix(host): host-agent register skip upload vf nics 2024-01-08 23:09:29 +08:00
屈轩
00283e54d2 fix(region): access group rule purge (#19192) 2024-01-08 15:52:24 +08:00
屈轩
28f58bca71 fix(region): simplify db init (#19183) 2024-01-08 14:19:17 +08:00
屈轩
449937a7ce fix(region): volcengine network range (#19188) 2024-01-08 11:35:08 +08:00
屈轩
a845b12294 fix(region): support aliyun essd entry (#19185) 2024-01-08 11:18:06 +08:00
屈轩
c958e588b9 fix(region): access group without cache (#19179) 2024-01-05 19:58:49 +08:00
gouqi11
d19cd2ab53 fix(notify): add missing topic (#19175)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-01-05 18:57:34 +08:00
屈轩
4f3948b6e5 fix(region): vendor update for zstack secgroup rule (#19170) 2024-01-05 10:39:06 +08:00
Jian Qiu
c4ebe1d2e4 fix: vpc dhcp options string value should be double quoted (#19163)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-05 07:56:11 +08:00
gouqi11
4f6ffac66d fix(notify): host topic bug fix (#19168)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2024-01-04 19:21:06 +08:00
屈轩
3b8549d8c7 fix(region): add translate (#19157) 2024-01-02 16:49:26 +08:00
wanyaoqi
bdd9953199 fix(host): host register set isinit false on hostId not null (#19154)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2024-01-02 14:01:19 +08:00
Jian Qiu
9f40a68157 fix: qmp free port test (#19151)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2024-01-02 14:00:33 +08:00
wanyaoqi
486aa4edf4 fix(region): ovs offload interface get ifname from isolated devices tlb (#19146)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2023-12-31 12:30:24 +08:00
Jian Qiu
5511fd7652 fix: automatically reserve guest gateway IP (#19143)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-30 17:11:40 +08:00
Jian Qiu
7e8d6ee4b0 fix: deploy user ssh keypair for user account only (#19134)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-30 16:56:36 +08:00
wanyaoqi
9f7f0f7caa feat(region,host,host-deployer): infiniband nic sriov support (#19127) 2023-12-30 16:55:56 +08:00
屈轩
28a25ebade fix(region): vendor update for huawei project sync (#19140) 2023-12-29 17:09:40 +08:00
Zexi Li
5593f125db Merge pull request #19130 from swordqiu/automated-cherry-pick-of-#19129-upstream-release-3.11
Automated cherry pick of #19129: fix: avoid megacli hang on adpallinfo
2023-12-29 16:37:06 +08:00
Qiu Jian
3f71995205 fix: avoid megacli hang on adpallinfo 2023-12-28 22:10:12 +08:00
gouqi11
c381cbde23 feat(notify): support notify for host (#19122)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-12-27 20:07:32 +08:00
gouqi11
3a52563646 fix(monitor): fix alertRecord manager (#19117)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-12-27 17:31:01 +08:00
屈轩
b8625cb2ab fix(region): huawei subaccount (#19118) 2023-12-27 14:20:42 +08:00
屈轩
182662d5d1 fix(region): vendor update for deploy vm struct params (#19114) 2023-12-27 11:33:37 +08:00
屈轩
b55a39cc84 fix(climc): support set tencent cloud bill report (#19108) 2023-12-27 11:07:41 +08:00
wanyaoqi
382d8f6f39 fix(region,host-deployer): qga os distribution format (#19109)
host-deployer fix xfs mount error

Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2023-12-26 20:15:17 +08:00
Jian Qiu
0fa95647d5 fix: delete server will purge instance backups (#19103)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-26 15:45:00 +08:00
Jian Qiu
b4f6c11538 Automated cherry pick of #19095: Feature/qj support default interface (#19102)
* fix: support default gateway interface

* fix: default gateway 2

---------

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-26 15:35:14 +08:00
wanyaoqi
aa210a77f6 feat(region,host): guest sync os info (#19099) 2023-12-26 12:49:24 +08:00
屈轩
0bfc248ecc fix(region): optimized host-list speed (#19094) 2023-12-26 11:04:15 +08:00
屈轩
a1ab937ef7 fix(region): esxi change config (#19090) 2023-12-25 14:36:26 +08:00
屈轩
8415fee8c4 fix(region): change storage_size from int to int64 (#19086) 2023-12-22 18:36:15 +08:00
Zexi Li
84d692dbad Merge pull request #19081 from ioito/automated-cherry-pick-of-#19080-upstream-release-3.11
Automated cherry pick of #19080: fix(region): avoid for-loop sync volcengine disks
2023-12-22 17:32:43 +08:00
Zexi Li
d839af0a58 Merge pull request #19083 from wanyaoqi/automated-cherry-pick-of-#19082-upstream-release-3.11
Automated cherry pick of #19082: fix(host-deployer): check executor is enabled on init qemu driver
2023-12-22 17:32:04 +08:00
wanyaoqi
97425a471a fix(host-deployer): check executor is enabled on init qemu driver 2023-12-22 17:19:53 +08:00
ioito
bb3f48a374 fix(region): avoid for-lool sync volcengine disks 2023-12-22 16:31:01 +08:00
屈轩
21132195a9 fix(region): optimized disk list (#19077) 2023-12-22 14:49:38 +08:00
屈轩
1c2e36a40b fix(region): add disk preallocation for guest info (#19075) 2023-12-22 10:36:02 +08:00
屈轩
c6401d7694 fix(region): remove debug sql query (#19073) 2023-12-21 20:50:42 +08:00
Zexi Li
e7f446047c feat(baremetal-agent): support using tftp to download kernel and initrd (#19065) 2023-12-21 00:50:58 +08:00
屈轩
7a922aeede fix(region): refactor huawei api for support organization (#19068) 2023-12-20 19:31:18 +08:00
Zexi Li
9b0648fca8 Merge pull request #19059 from swordqiu/automated-cherry-pick-of-#19057-upstream-release-3.11
Automated cherry pick of #19057: fix: webconsole ssh open forward failure
2023-12-20 11:37:52 +08:00
屈轩
62103bd7dd fix(region): vendor update for volcengine network and aws dnsrecords sync (#19062) 2023-12-20 11:35:11 +08:00
Qiu Jian
d37a437e0d fix: webconsole ssh open forward failure 2023-12-20 00:08:09 +08:00
屈轩
e11af2d012 fix(region): ignore empty certificate error for ssl sync (#19054) 2023-12-19 20:26:13 +08:00
Zexi Li
40681ccf44 Merge pull request #19052 from ioito/automated-cherry-pick-of-#19051-upstream-release-3.11
Automated cherry pick of #19051: fix(region): avoid rds vcpu count is zero
2023-12-19 14:25:56 +08:00
屈轩
8955cd8e1d fix(region): add log for skiped pending deleted vm (#19050) 2023-12-19 13:28:22 +08:00
ioito
a9285aff4b fix(region): avoid rds vcpu count is zero 2023-12-19 13:26:25 +08:00
Zexi Li
f5e837ec75 Merge pull request #19047 from zhasm/automated-cherry-pick-of-#19046-upstream-release-3.11
Automated cherry pick of #19046: fix(docker): update dockerfile for ansible-base
2023-12-19 13:17:01 +08:00
Zhang Dongliang
83d9774ed6 fix(docker): update dockerfile for ansible-base 2023-12-19 13:09:21 +08:00
屈轩
fc235cbb88 fix(region): snapshot policy sync external id (#19043) 2023-12-18 19:14:18 +08:00
Zexi Li
b288cda5c7 Merge pull request #19035 from swordqiu/automated-cherry-pick-of-#19033-upstream-release-3.11
Automated cherry pick of #19033: fix: disable pvpanic dev
2023-12-18 17:26:50 +08:00
Zexi Li
8b4d4bbb3a Merge pull request #19032 from wanyaoqi/automated-cherry-pick-of-#19031-upstream-release-3.11
Automated cherry pick of #19031: fix(host-deployer): pass config files to deploy vm
2023-12-18 17:25:17 +08:00
Zexi Li
c31d40d31e Merge pull request #19038 from wanyaoqi/automated-cherry-pick-of-#19037-upstream-release-3.11
Automated cherry pick of #19037: fix(host): usb device hotplug
2023-12-18 17:23:09 +08:00
wanyaoqi
20d18137a5 fix(host): hot add usb device 2023-12-18 17:06:18 +08:00
wanyaoqi
9ce5fa6290 fix(host): usb host device add device_id 2023-12-18 17:06:18 +08:00
Qiu Jian
5700b3555d fix: disable pvpanic dev 2023-12-18 16:45:04 +08:00
wanyaoqi
fd1910480e fix(host-deployer): pass config files to deploy vm 2023-12-18 16:42:46 +08:00
屈轩
727390d6d5 fix(region): The latest api of Huawei cloud elb and eip is applicable (#19028) 2023-12-18 15:41:26 +08:00
gouqi11
01f38f9f3e feat(region): add ip_addr for rds.GetShortDesc (#19022)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-12-16 16:38:57 +08:00
屈轩
724fbac416 fix(region): do not clean up the running vm in the recycle bin (#19016) 2023-12-16 12:51:09 +08:00
Zexi Li
4823e1b471 Merge pull request #19013 from swordqiu/automated-cherry-pick-of-#19012-upstream-release-3.11
Automated cherry pick of #19012: fix: webconsole display information control
2023-12-16 10:10:39 +08:00
Zexi Li
004cedc130 Merge pull request #19010 from zexi/automated-cherry-pick-of-#19007-upstream-release-3.11
Automated cherry pick of #19007: fix(scheduler): reload cloudprovider's hosts when syncing finished
2023-12-16 10:06:09 +08:00
Qiu Jian
2292a08364 fix: webconsole display information control 2023-12-15 21:19:18 +08:00
Zexi Li
fff91b8eca fix(scheduler): reload cloudprovider's hosts when syncing finished 2023-12-15 20:19:32 +08:00
屈轩
644b2a20ab fix(region): refactor snapshot policy (#19006) 2023-12-15 17:08:01 +08:00
Zexi Li
0e5a31c41e fix(cloudcommon): service config informer doesn't start watching (#19004) 2023-12-15 14:58:48 +08:00
Zexi Li
7103249d75 Merge pull request #18998 from swordqiu/automated-cherry-pick-of-#18997-upstream-release-3.11
Automated cherry pick of #18997: fix: refine webconsole ssh api
2023-12-15 11:50:43 +08:00
Zexi Li
b9c7c59188 Merge pull request #19000 from wanyaoqi/automated-cherry-pick-of-#18999-upstream-release-3.11
Automated cherry pick of #18999: fix(host-deployer): udpate yunionos, reduce yunionos memsize
2023-12-15 11:50:14 +08:00
wanyaoqi
746a96722c fix(host-deployer): udpate yunionos, reduce yunionos memsize 2023-12-15 11:41:11 +08:00
Qiu Jian
b66c3efd27 fix: refine webconsole ssh api 2023-12-15 10:40:27 +08:00
屈轩
ec08fce85a fix(region): remove useless snapshot policy code (#18993) 2023-12-14 11:56:12 +08:00
屈轩
ef5fee6c8b fix(region): avoid duplicate rule name for gcp (#18990) 2023-12-14 11:23:38 +08:00
wanyaoqi
1f25fc17b8 feat(region,host): clvm support (#18978) 2023-12-14 09:41:54 +08:00
Zexi Li
d811d64fce Merge pull request #18986 from swordqiu/automated-cherry-pick-of-#18985-upstream-release-3.11
Automated cherry pick of #18985: fix: backup storage capacity_mb field optional
2023-12-14 03:28:21 +08:00
屈轩
c19596176c fix(region): set status available for kvm secgroup rule after created (#18988) 2023-12-13 21:26:29 +08:00
Qiu Jian
f7db51b504 fix: backup storage capacity_mb field optional 2023-12-13 19:52:39 +08:00
Zexi Li
f4d9166c79 Merge pull request #18981 from zexi/monitor-vm-measurements
fix(monitor): fetch measurements from victoriametrics
2023-12-13 19:47:15 +08:00
Zexi Li
aef50a49a6 fix(monitor): fetch measurements from victoriametrics 2023-12-13 18:49:40 +08:00
Zexi Li
a5f2194afc Merge pull request #18977 from zexi/automated-cherry-pick-of-#18975-upstream-release-3.11
Automated cherry pick of #18975: fix(monitor): consider whether the target host is in source host of mem balancer
2023-12-13 13:38:28 +08:00
Zexi Li
796bea5d7c fix(monitor): consider whether the target host is in source host of mem balancer 2023-12-13 12:54:37 +08:00
Zexi Li
d2bf8c44ad Merge pull request #18970 from ioito/automated-cherry-pick-of-#18969-upstream-release-3.11
Automated cherry pick of #18969: fix(region): vendor update for gcp rebuild-root sys disk size and password login
2023-12-12 18:21:15 +08:00
ioito
3258a85236 fix(region): vendor update for gcp rebuild-root sys disk size and password login 2023-12-12 17:23:52 +08:00
Zexi Li
ee102ca0c6 Merge pull request #18966 from wanyaoqi/automated-cherry-pick-of-#18965-upstream-release-3.11
Automated cherry pick of #18965: fix(host-deployer): run guest on host and ignore no config file
2023-12-12 15:18:59 +08:00
wanyaoqi
afd5a1f716 fix(host-deployer): run guest on host and ignore no config file
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2023-12-12 14:56:03 +08:00
Zexi Li
34a1f623ef Merge pull request #18952 from swordqiu/automated-cherry-pick-of-#18951-upstream-release-3.11
Automated cherry pick of #18951: fix: ignore vm virtual ip changes
2023-12-12 09:34:27 +08:00
Zexi Li
4e8cea612a Merge pull request #18955 from swordqiu/hotfix/qj-more-verbose-metric-collection
fix: log metric collection action
2023-12-11 16:18:29 +08:00
Qiu Jian
e9cea00f2d fix: log metric collection action 2023-12-11 00:28:44 +08:00
Qiu Jian
b81d367f95 fix: ignore vm virtual ip changes 2023-12-10 13:28:26 +08:00
Jian Qiu
91ced9d0f4 fix: host add a local config file (#18933)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-08 21:26:40 +08:00
屈轩
22b68fe2d4 fix(region): support volc balance and gcp api retry (#18947) 2023-12-08 17:56:42 +08:00
屈轩
d0e8273b51 fix(region): optimized sync code (#18944) 2023-12-08 15:06:47 +08:00
Zexi Li
4959215d7a Merge pull request #18939 from zexi/monitor-domain-no-metrics
fix(monitor): not add scope to query resource from region service
2023-12-08 12:41:51 +08:00
Zexi Li
cc1c57155c fix(monitor): not add scope to query resource from region service 2023-12-08 12:28:20 +08:00
Zexi Li
5d886e304d Merge pull request #18928 from swordqiu/automated-cherry-pick-of-#18927-upstream-release-3.11
Automated cherry pick of #18927: fix: no default fallback dns server
2023-12-08 10:47:06 +08:00
Zexi Li
100f41bdd9 Merge pull request #18926 from zexi/climc-monitor-query
feat(monitor): make simple-query API adapting victoriametrics and add monitor-unifiedmonitor-query command
2023-12-08 10:46:11 +08:00
Zexi Li
590cba97bb feat(climc): add monitor-unifiedmonitor-query command 2023-12-08 10:05:02 +08:00
Qiu Jian
a8f985a188 fix: no default fallback dns server 2023-12-08 01:16:18 +08:00
Zexi Li
8eaa742333 fix(monitor): make simple-query API adapt to victoriametrics 2023-12-08 00:31:22 +08:00
Zexi Li
ed990bd55f Merge pull request #18923 from ioito/automated-cherry-pick-of-#18922-upstream-release-3.11
Automated cherry pick of #18922: fix(region): cloudpods uefi and generate name
2023-12-07 16:41:07 +08:00
Zexi Li
837c29e34f Merge pull request #18917 from wanyaoqi/automated-cherry-pick-of-#18916-upstream-release-3.11
Automated cherry pick of #18916: Fix/host deployer
2023-12-07 16:40:18 +08:00
ioito
7cadeea34f fix(region): cloudpods uefi and generate name 2023-12-07 16:15:02 +08:00
wanyaoqi
9da12b090a fix(host-deployer): disconnect fix and concurrence control 2023-12-07 16:05:21 +08:00
屈轩
5ae6751ad3 fix(webconsole): rdp 用户隔离上传文件 (#18921) 2023-12-07 15:22:14 +08:00
屈轩
1570a14746 feat(webconsole): support sftp for ssh (#18919) 2023-12-07 14:54:19 +08:00
wanyaoqi
8bfb666129 fix:(host-deployer): arm guest add gic version 2023-12-07 10:37:11 +08:00
屈轩
df3571f972 fix: guacd docker file mkdir required dir (#18913) 2023-12-06 17:03:40 +08:00
Zexi Li
0060fce771 Merge pull request #18909 from zexi/automated-cherry-pick-of-#18908-upstream-release-3.11
Automated cherry pick of #18908: fix(monitor): map interval to step
2023-12-06 16:16:23 +08:00
Zexi Li
db7808a683 Merge pull request #18908 from zexi/vm-map
fix(monitor): map interval to step
2023-12-06 16:16:08 +08:00
Zexi Li
4cbd9fcdfd fix(monitor): map interval to step 2023-12-06 15:32:40 +08:00
Jian Qiu
fb86463bbf fix: esxi hotadd cpu limit (#18893)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-06 15:31:15 +08:00
Zexi Li
887132e297 fix(monitor): map interval to step 2023-12-06 15:31:08 +08:00
屈轩
370c405684 fix(keystone): remove deleted project metadata (#18906) 2023-12-06 15:29:51 +08:00
屈轩
92c23a245b fix(webconsole): optimized guacd error log (#18904) 2023-12-06 11:59:49 +08:00
Zexi Li
bd54efcd2e Merge pull request #18897 from zexi/monitor-vm-top
fix(monitor): update vendor to support victoriametrics topk func
2023-12-05 18:23:19 +08:00
Zexi Li
f212295104 fix(monitor): update vendor to support victoriametrics topk func 2023-12-05 18:01:36 +08:00
Jian Qiu
bc5982907e fix: add index for token_cache_tbl to accelerate invalid token query (#18890)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-05 12:22:27 +08:00
Jian Qiu
01e764e62e fix: clickhouse mapping table use the same name as origin (#18888)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-05 12:22:02 +08:00
Zexi Li
5698d47252 Merge pull request #18881 from ioito/automated-cherry-pick-of-#18880-upstream-release-3.11
Automated cherry pick of #18880: fix(region): avoid cloudmon no cloudprovider sync
2023-12-05 12:06:58 +08:00
Zexi Li
3ec0372159 Merge pull request #18883 from ioito/automated-cherry-pick-of-#18882-upstream-release-3.11
Automated cherry pick of #18882: fix: show update oc cmd
2023-12-05 12:06:25 +08:00
ioito
76b81e33d4 fix: show update oc cmd 2023-12-05 10:40:18 +08:00
ioito
19378997ee fix(region): avoid cloudmon no cloudprovider sync 2023-12-05 10:05:50 +08:00
Jian Qiu
b20ec7bdb3 fix: mapping mysql tables into clickhouse with Engine MySQL (#18878)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-05 07:08:29 +08:00
wanyaoqi
32f2bc5821 fix(host-deployer): qemu deployer without kvm support (#18874) 2023-12-05 07:07:11 +08:00
wanyaoqi
ffafcdb7c1 fix(region): add option control enable default dns server (#18872) 2023-12-04 17:02:14 +08:00
Zexi Li
7a87d00304 Merge pull request #18868 from ioito/automated-cherry-pick-of-#18867-upstream-release-3.11
Automated cherry pick of #18867: fix(region): vendor update
2023-12-04 15:25:58 +08:00
ioito
d6fd14c39a fix(region): vendor update 2023-12-04 14:59:37 +08:00
Zexi Li
f65d175990 Merge pull request #18864 from wanyaoqi/automated-cherry-pick-of-#18863-upstream-release-3.11
Automated cherry pick of #18863: fix(host-deployer,host): mv deploy driver option to common options
2023-12-04 14:35:21 +08:00
屈轩
3bc094e9d7 fix(region): vendor update (#18861) 2023-12-04 14:26:18 +08:00
wanyaoqi
45bec04fde fix(host-deployer,host): mv deploy driver option to common options 2023-12-04 14:22:17 +08:00
Zexi Li
973ef23b42 Merge pull request #18857 from wanyaoqi/fix/qemu-deploy-guest-3-11
Manual cherrypick of #18856
2023-12-04 10:35:28 +08:00
wanyaoqi
4c9e7e1ddd fix(host-deployer): update base image and fix return errors 2023-12-04 01:49:15 +08:00
Jian Qiu
673d67f586 fix: reserve ping probed ip with expiration (#18855)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-03 22:27:26 +08:00
Jian Qiu
f243c3d66f fix: force assign ip address when sync vm vnics (#18853)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-12-03 15:34:36 +08:00
Zexi Li
c31ace6222 fix(baremetal): disable probe access mac by redfish driver (#18846) 2023-12-03 15:17:51 +08:00
Zexi Li
e17ace8c64 Merge pull request #18845 from zexi/automated-cherry-pick-of-#18843-upstream-release-3.11
Automated cherry pick of #18843: feat(ci): use github action to check PR
2023-12-01 14:58:54 +08:00
Zexi Li
9079f4c8bb feat(ci): use github action to check PR 2023-12-01 14:54:55 +08:00
Jian Qiu
f4e0db5c11 fix: server create instance backup parameters (#18842)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-30 20:19:17 +08:00
屈轩
fe78f19e14 fix(region): 增加配置项,支持标签不再同步至云上功能 (#18838) 2023-11-30 19:12:52 +08:00
屈轩
e333fb6f36 fix(webconsole): rdp stop (#18841) 2023-11-30 19:12:29 +08:00
Jian Qiu
3739da2114 Automated cherry pick of #18831: Hotfix/qj esxi sync ips support (#18836)
* fix: support esxi subips

* update vendor

---------

Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-30 18:04:12 +08:00
wanyaoqi
7bc08d6dfe fix(host): guest switch to backup (#18834) 2023-11-30 17:14:56 +08:00
wanyaoqi
5aeb7eabcb Automated cherry pick of #18821: Feat/deploy guest (#18822)
* feat(region): add guest rescue api && download initrd from baremetal tftp server && add baremetal agent ip finder & update pic address & support ip kernel config.

* feat(host-deployer): use qemu-kvm as default deploy dirver

---------

Co-authored-by: boironic@gmail.com <boironic@gmail.com>
2023-11-30 16:50:08 +08:00
屈轩
1647a7dd00 fix(region): optional vcpu when change vm config (#18826) 2023-11-30 13:33:42 +08:00
屈轩
d259d7adc9 fix(region): skip sync meta if no public cloud register (#18828) 2023-11-30 13:33:16 +08:00
Jian Qiu
a76d8fc4f3 fix: filter networks by host type (#18819)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-30 00:07:49 +08:00
屈轩
13d26f7b43 fix(webconsole): checke rdp password (#18817) 2023-11-29 19:07:43 +08:00
屈轩
362e5467c8 fix(webconsole): rdp enable drive (#18806) 2023-11-29 19:07:10 +08:00
屈轩
8472fe65b6 fix(region): vendor update (#18815) 2023-11-29 15:00:41 +08:00
屈轩
0b8c6a0255 fix(region): 只读账号增量更新标签 (#18812) 2023-11-29 14:53:46 +08:00
Jian Qiu
75435de8a8 fix: generalized metadata getter (#18808)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-29 09:04:21 +08:00
屈轩
a3270d53e9 feat(webconsole): support rdp (#18803) 2023-11-28 10:47:14 +08:00
Zexi Li
dc7a451a4d Merge pull request #18801 from swordqiu/automated-cherry-pick-of-#18800-upstream-release-3.11
Automated cherry pick of #18800: fix: customized show content of get-property
2023-11-28 10:09:34 +08:00
Qiu Jian
12aaad6cd9 fix: customized show content of get-property 2023-11-28 09:13:32 +08:00
Zexi Li
22b098b4a2 Merge pull request #18797 from zexi/nvidia-gpu-metrics
fix(monitor): register agent_nvidia_smi metrics
2023-11-27 19:32:12 +08:00
Zexi Li
731af95698 fix(monitor): register agent_nvidia_smi metrics 2023-11-27 19:11:06 +08:00
Zexi Li
32a7f70edd Merge pull request #18792 from wanyaoqi/automated-cherry-pick-of-#18791-upstream-release-3.11
Automated cherry pick of #18791: fix(region): alloc ovn_mapped_ip_addr on host post create
2023-11-27 19:07:42 +08:00
Zexi Li
9e42caa08b Merge pull request #18788 from swordqiu/automated-cherry-pick-of-#18787-upstream-release-3.11
Automated cherry pick of #18787: fix: cloud account update aliyun billing scope
2023-11-27 19:06:47 +08:00
屈轩
98e818b182 fix(region): revert os dist filter and sort (#18794) 2023-11-27 17:34:40 +08:00
wanyaoqi
3aa27eaad5 fix(region): alloc ovn_mapped_ip_addr on host post create 2023-11-27 17:19:44 +08:00
Qiu Jian
283a6fa5aa fix: cloud account update aliyun billing scope 2023-11-27 01:26:10 +08:00
Zexi Li
3a9b11c57d Merge pull request #18784 from swordqiu/feature/qj-backup-support-object-storage
feature: backup support object storage
2023-11-26 20:56:16 +08:00
Qiu Jian
2dec7a3726 fix: encrypt object storage secret 2023-11-26 19:53:57 +08:00
Qiu Jian
f8284d8bc1 fix: update model api 2023-11-26 16:55:42 +08:00
Qiu Jian
20167c2afd feature: backup support object storage 2023-11-26 16:01:46 +08:00
Zexi Li
8adf5abf86 feat(host): use IsolatedDeviceModels as GPU whitelist (#18783) 2023-11-25 19:41:05 +08:00
Zexi Li
06dc39a591 feat(host): use IsolatedDeviceModels as GPU whitelist (#18780) 2023-11-25 19:40:53 +08:00
屈轩
6bef6a1cb6 fix(region): trim metadata key (#18776) 2023-11-24 22:17:47 +08:00
屈轩
04c6ee73a8 fix(region): vm filter by os dist (#18778) 2023-11-24 20:06:05 +08:00
屈轩
f7c83468ea fix(region): distinct os dist field (#18768) 2023-11-24 11:51:55 +08:00
屈轩
39f3c7a1e4 fix(region): show guest gpu model (#18766) 2023-11-23 12:39:47 +08:00
Jian Qiu
7fd56f1baa fix: hot add mem check for esxi vm (#18763)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-23 12:20:52 +08:00
Zexi Li
c6f6329bcd Merge pull request #18760 from swordqiu/automated-cherry-pick-of-#18757-upstream-release-3.11
Automated cherry pick of #18757: fix: hot add mem check for esxi vm
2023-11-23 10:15:29 +08:00
Qiu Jian
fef1b4a578 fix: hot add mem check for esxi vm 2023-11-23 09:54:08 +08:00
Zexi Li
c309fdd3c1 feat(region): add nvidia_smi telegraf input plugin (#18751) 2023-11-23 00:19:40 +08:00
屈轩
7504c2eb5b fix(keystone): project clean (#18742) 2023-11-21 21:10:23 +08:00
Zexi Li
ffb8ff3df8 Merge pull request #18746 from zexi/monitor-vm-mul-query
fix(monitor): query multiple fileds from victoria-metrics
2023-11-21 18:05:47 +08:00
Zexi Li
ece44e0698 fix(monitor): query multiple fileds from victoria-metrics 2023-11-21 17:44:22 +08:00
Zexi Li
d0f045b65f Merge pull request #18744 from ioito/automated-cherry-pick-of-#18743-upstream-release-3.11
Automated cherry pick of #18743: fix(region): remove useless filter params
2023-11-21 17:16:45 +08:00
ioito
bd7319daf7 fix(region): remove useless filter params 2023-11-21 16:05:53 +08:00
屈轩
7461a25508 fix(region): cpu socket (#18732) 2023-11-21 15:08:36 +08:00
Zexi Li
16d6212c45 Merge pull request #18736 from zexi/srv-hardware-info
feat(region,host,climc): aggregate server hardware information
2023-11-21 14:08:56 +08:00
Zexi Li
8fb19b87d2 feat(region,host,climc): aggregate server hardware information 2023-11-21 12:00:19 +08:00
gouqi11
c763fc68dc feat(common): log support rebilling (#18738)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-20 19:21:10 +08:00
屈轩
46b435ca5b fix(region): vendor update for aliyun tags (#18728) 2023-11-17 16:30:25 +08:00
gouqi11
cd9ee7bc9a fix(notify): fix webhook brand (#18724)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-17 15:37:21 +08:00
屈轩
acac041bec fix(region): redis cloudregion id (#18722) 2023-11-17 15:19:53 +08:00
Zexi Li
950a02183b Merge pull request #18720 from zexi/automated-cherry-pick-of-#18718-upstream-release-3.11
Automated cherry pick of #18718: fix(climc): bash completion is not working
2023-11-17 12:34:01 +08:00
Zexi Li
440a7fa5fc fix(climc): bash completion is not working 2023-11-17 12:03:27 +08:00
屈轩
1abb1086ed fix(region): vendor update (#18715) 2023-11-17 11:34:28 +08:00
屈轩
4c84f1cbe1 fix(region): vendor update (#18712) 2023-11-17 10:08:47 +08:00
gouqi11
28644d3da4 Automated cherry pick of #18704: fix(region): rds skip notImplementedErr (#18710)
* fix(region): rds skip notImplementedErr

* fix(region): aws redis set metadata status

---------

Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-16 17:20:45 +08:00
屈轩
5bf44a67ac fix(region): vendor update (#18707) 2023-11-16 17:17:40 +08:00
gouqi11
340f458ff4 update vendor (#18702)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-16 10:01:00 +08:00
gouqi11
89efdbc642 fix(region): fix db_dispatcher duplicate notify (#18699)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-15 17:02:43 +08:00
Jian Qiu
885f4ebcd8 fix: update lb cluster with patch params (#18696)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-15 08:57:28 +08:00
Jian Qiu
7783546754 fix: windows GPU vm should set hypervisor=off (#18691)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-15 08:56:43 +08:00
Jian Qiu
b3580ab64f fix: make host dhcp lease options global (#18683)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-15 08:55:14 +08:00
Jian Qiu
a757ea3dd8 fix: host set nil metadata (#18688)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-15 08:54:34 +08:00
Jian Qiu
b2b60ff660 fix: organization node weight not effective (#18694)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-15 08:54:08 +08:00
Zexi Li
30ee89a390 feat(region,climc): add set-os-info api (#18680) 2023-11-14 22:59:56 +08:00
Zexi Li
9706339eac Merge pull request #18670 from wanyaoqi/automated-cherry-pick-of-#18669-upstream-release-3.11
Automated cherry pick of #18669: fix(host): sync sriov nic bw on change config
2023-11-14 20:25:31 +08:00
屈轩
aa6e34e98d feat(region): support oracle cloud (#18679) 2023-11-14 19:43:29 +08:00
gouqi11
e99c7bed63 Automated cherry pick of #18663: fix(keystone): fix usage for projectNum (#18664)
* feat(region): support action to reBilling

* fix(keystone): fix keystone usage for projectNum

---------

Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-14 19:32:22 +08:00
Zexi Li
c810a3b144 fix(host): setup routes from start to end (#18674) 2023-11-14 17:56:11 +08:00
wanyaoqi
77ff5fcd44 fix(host): sync sriov nic bw on change config 2023-11-14 16:31:11 +08:00
Zexi Li
64027a3280 Merge pull request #18666 from wanyaoqi/automated-cherry-pick-of-#18665-upstream-release-3.11
Automated cherry pick of #18665: fix(regin): instance snapshot create guest fill os arch
2023-11-14 14:47:48 +08:00
Zexi Li
8606e6cfbd Merge pull request #18662 from ioito/automated-cherry-pick-of-#18661-upstream-release-3.11
Automated cherry pick of #18661: fix(region): order by os dist
2023-11-14 14:44:54 +08:00
wanyaoqi
0ad56aa42f fix(regin): instance snapshot create guest fill os arch 2023-11-14 11:16:46 +08:00
ioito
4c2d42a79f fix(region): order by os dist 2023-11-14 10:47:11 +08:00
Zexi Li
9b8094c9a5 Merge pull request #18656 from zexi/automated-cherry-pick-of-#18655-upstream-release-3.11
Automated cherry pick of #18655: fix(host): catch init error
2023-11-13 21:12:38 +08:00
Zexi Li
7702776d8f Merge pull request #18658 from zexi/automated-cherry-pick-of-#18634-upstream-release-3.11
Automated cherry pick of #18634: chore: unnecessary use of fmt.Sprintf d
2023-11-13 20:44:49 +08:00
guoguangwu
65d66edbc7 chore: unnecessary use of fmt.Sprintf d
Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
2023-11-13 20:42:42 +08:00
Zexi Li
b3180bd87a fix(host): catch init error 2023-11-13 20:40:12 +08:00
Zexi Li
aad04d9cdc Merge pull request #18645 from swordqiu/automated-cherry-pick-of-#18644-upstream-release-3.11
Automated cherry pick of #18644: fix: extend gpu pci class codes
2023-11-13 19:19:38 +08:00
屈轩
845eecc217 fix(yunionconf): allow disable bug report (#18654) 2023-11-13 19:03:58 +08:00
屈轩
59f5c5beea fix(region): vm gpu notes (#18652) 2023-11-13 18:15:40 +08:00
屈轩
1a2c830a76 fix(region): esxi support preallocation vdisk (#18648) 2023-11-13 18:15:18 +08:00
Zexi Li
55707f159a Merge pull request #18640 from wanyaoqi/automated-cherry-pick-of-#18639-upstream-release-3.11
Automated cherry pick of #18639: fix(region,host): sriov nic hotplug and metrics fix
2023-11-13 17:02:35 +08:00
Zexi Li
a6928cfa67 Merge pull request #18635 from ioito/automated-cherry-pick-of-#18633-upstream-release-3.11
Automated cherry pick of #18633: fix(region): esxi disk storage
2023-11-13 16:58:53 +08:00
Qiu Jian
d9e8372d90 fix: extend gpu pci class codes 2023-11-13 16:21:26 +08:00
wanyaoqi
550bfc53b4 fix(region,host): sriov nic hotplug and metrics fix 2023-11-13 14:40:28 +08:00
Zexi Li
6ee1dbedb0 Merge pull request #18637 from wanyaoqi/automated-cherry-pick-of-#18636-upstream-release-3.11
Automated cherry pick of #18636: fix(region): change config check traffic limit params
2023-11-13 11:38:43 +08:00
wanyaoqi
2de131eb27 fix(region): change config check traffic limit params 2023-11-13 11:21:47 +08:00
ioito
c43f0cedf6 fix(region): esxi disk storage 2023-11-13 10:49:36 +08:00
Zexi Li
5183678684 Merge pull request #18632 from ioito/automated-cherry-pick-of-#18631-upstream-release-3.11
Automated cherry pick of #18631: fix(cloudmon): collect metric with project tags
2023-11-10 16:45:40 +08:00
Zexi Li
08288b2d75 Merge pull request #18627 from swordqiu/automated-cherry-pick-of-#18625-upstream-release-3.11
Automated cherry pick of #18625: fix: cloudprovider external id
2023-11-10 16:40:21 +08:00
ioito
de19868d32 fix(cloudmon): collect metric with project tags 2023-11-10 16:33:28 +08:00
屈轩
6a7c109c83 fix(region): vendor update (#18630) 2023-11-10 16:09:56 +08:00
Zexi Li
cacb1e3c6f Merge pull request #18616 from zexi/automated-cherry-pick-of-#18545-upstream-release-3.11
Automated cherry pick of #18545: feat(monitor,region,host,cloudmon): support VictoriaMetrics as TSDB backend
2023-11-10 16:05:34 +08:00
屈轩
54ec8acbeb fix(common): support report bug (#18628) 2023-11-10 15:46:22 +08:00
Zexi Li
4f96f2e5fa feat(monitor,region,host,cloudmon): support VictoriaMetrics as TSDB backend 2023-11-10 15:34:01 +08:00
Qiu Jian
889e9577ef fix: cloudprovider external id 2023-11-10 12:07:55 +08:00
屈轩
698937280a fix(region): vendor update (#18623) 2023-11-10 11:59:09 +08:00
屈轩
bac8ecf432 fix(region): qcloud secgroup rule priority (#18621) 2023-11-10 11:54:59 +08:00
Zexi Li
853855d174 Merge pull request #18619 from gouqi11/automated-cherry-pick-of-#18618-upstream-release-3.11
Automated cherry pick of #18618: fix(keystone): fix usage empty projectTags
2023-11-09 16:09:52 +08:00
马鸿飞
0450883be1 fix(keystone): fix usage empty projectTags 2023-11-09 15:32:15 +08:00
Zexi Li
b6247630f9 Merge pull request #18614 from ioito/automated-cherry-pick-of-#18613-upstream-release-3.11
Automated cherry pick of #18613: fix(region): pve cdrom with host info
2023-11-09 12:18:18 +08:00
ioito
4c8fd267a8 fix(region): pve cdrom with host info 2023-11-09 12:05:01 +08:00
屈轩
82be65ecaf fix(region): avoid panic when sync aliyun redis (#18607) 2023-11-08 20:56:31 +08:00
gouqi11
ffcc092089 feat(usage): support project count (#18611)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-08 20:36:49 +08:00
屈轩
7ca7bf48ab fix(webconsole): pve vnc support (#18604) 2023-11-08 19:35:11 +08:00
Zexi Li
fc4cc7d0b1 fix(host): ignore error when add bridge ip address route (#18601) 2023-11-08 17:39:45 +08:00
屈轩
0fd0284051 fix(region): clean invalid skus (#18595) 2023-11-07 21:16:51 +08:00
屈轩
5b930df74f fix(region): vendor update (#18591) 2023-11-07 20:37:03 +08:00
Zexi Li
c0db929d4c Merge pull request #18585 from wanyaoqi/automated-cherry-pick-of-#18584-upstream-release-3.11
Automated cherry pick of #18584: fix(host-deployer): use sync.lock on nbd connect/disconnect
2023-11-07 15:40:19 +08:00
wanyaoqi
3f74e94e8f fix(host-deployer): use sync.lock on nbd connect/disconnect 2023-11-07 15:30:20 +08:00
wanyaoqi
2ea7da3746 Automated cherry pick of #18580: fix(host): sync guest machine type on live migrate (#18581)
* fix(host): sync guest machine type on live migrate

* fix(host): checkout real anonymous pci devs on ensure pci address
2023-11-07 09:45:40 +08:00
wanyaoqi
1e196b1a9d fix(host-deployer): detach nbd device do not block main thread (#18577) 2023-11-07 07:22:13 +08:00
Zexi Li
07b6906d30 Merge pull request #18572 from wanyaoqi/automated-cherry-pick-of-#18571-upstream-release-3.11
Automated cherry pick of #18571: fix(host): live migrate ensure disk storate type
2023-11-06 16:47:58 +08:00
wanyaoqi
1b6c3aa20a fix(host): live migrate ensure disk storate type 2023-11-06 14:43:55 +08:00
Zexi Li
1a1d941d30 Merge pull request #18566 from swordqiu/automated-cherry-pick-of-#18565-upstream-release-3.11
Automated cherry pick of #18565: fix: qemu disk set serial as disk_id
2023-11-05 11:44:53 +08:00
Qiu Jian
9ff75d4656 fix: qemu disk set serial as disk_id 2023-11-04 18:50:03 +08:00
Zexi Li
181c99868e Merge pull request #18560 from swordqiu/automated-cherry-pick-of-#18559-upstream-release-3.11
Automated cherry pick of #18559: fix: host fail to migrate interface routes
2023-11-04 18:28:14 +08:00
Qiu Jian
634e52142a fix: host fail to migrate interface routes 2023-11-03 23:58:30 +08:00
屈轩
af80f0d82c fix(region): volcengine monitor (#18558) 2023-11-03 13:56:46 +08:00
wanyaoqi
eaa5c52456 fix(region,host): support traffic limit in change config (#18554) 2023-11-03 10:10:25 +08:00
Zexi Li
f7a17d64d6 Merge pull request #18550 from ioito/automated-cherry-pick-of-#18549-upstream-release-3.11
Automated cherry pick of #18549: fix(region): esxi vm resize disk online
2023-11-02 15:02:22 +08:00
Zexi Li
422ae1e511 Merge pull request #18547 from wanyaoqi/automated-cherry-pick-of-#18546-upstream-release-3.11
Automated cherry pick of #18546: fix(host-deployer): clean nbd mount on host-deployer start
2023-11-02 15:01:22 +08:00
ioito
4e44ae2932 fix(region): esxi vm resize disk online 2023-11-02 11:24:08 +08:00
wanyaoqi
38e11808df fix(host-deployer): clean nbd mount on host-deployer start 2023-11-01 21:25:41 +08:00
屈轩
c9d20e7a14 fix(region): volc bucket storage class (#18544) 2023-11-01 20:02:16 +08:00
屈轩
8282619b86 fix(region): vendor update (#18541) 2023-11-01 19:13:40 +08:00
屈轩
4178d46cd9 fix(region): vendor update (#18539) 2023-11-01 18:52:08 +08:00
屈轩
be5075a74b fix(region): vendor update (#18535) 2023-11-01 17:48:09 +08:00
gouqi11
b9aadb704d update vendor (#18533)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-11-01 15:41:46 +08:00
Zexi Li
0a78de3166 Merge pull request #18530 from wanyaoqi/automated-cherry-pick-of-#18529-upstream-release-3.11
Automated cherry pick of #18529: fix(host): live migrate pass disk num queues
2023-11-01 14:58:13 +08:00
wanyaoqi
a84676af7c fix(host): live migrate pass disk num queues 2023-11-01 14:48:24 +08:00
Zexi Li
84c1c7d8d4 Merge pull request #18525 from ioito/automated-cherry-pick-of-#18524-upstream-release-3.11
Automated cherry pick of #18524: fix(region): skip vm eip not found error log
2023-11-01 10:13:46 +08:00
Zexi Li
858af35887 Merge pull request #18523 from ioito/automated-cherry-pick-of-#18522-upstream-release-3.11
Automated cherry pick of #18522: fix(region): volcengine vm save image
2023-11-01 10:13:01 +08:00
Jian Qiu
ddc2b319ed fix: xfs zerofree (experimental) (#18527)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-11-01 09:41:18 +08:00
ioito
d6b28d270f fix(region): skip vm eip not found error log 2023-10-31 20:43:18 +08:00
ioito
49c813659b fix(region): volcengine vm save image 2023-10-31 20:40:47 +08:00
屈轩
9d0e545c66 fix(region): vendor update (#18514) 2023-10-31 20:24:09 +08:00
Zexi Li
2f7c4cd671 Merge pull request #18516 from wanyaoqi/automated-cherry-pick-of-#18515-upstream-release-3.11
Automated cherry pick of #18515: fix(host): detect blk dev numqueues and nics(no id) pci addresses
2023-10-31 20:17:40 +08:00
Zexi Li
08dd95748c Merge pull request #18519 from wanyaoqi/automated-cherry-pick-of-#18518-upstream-release-3.11
Automated cherry pick of #18518: fix(region): reduce local disk max size to 10T
2023-10-31 19:51:14 +08:00
wanyaoqi
9b1622325f fix(region): reduce local disk max size to 10T 2023-10-31 19:38:09 +08:00
Zexi Li
5480dfd1c8 Merge pull request #18504 from swordqiu/automated-cherry-pick-of-#18503-upstream-release-3.11
Automated cherry pick of #18503: fix: dhcp hostname not compatible with some os
2023-10-31 19:28:49 +08:00
Zexi Li
da3167d3bc Merge pull request #18499 from zexi/automated-cherry-pick-of-#18497-upstream-release-3.11
Automated cherry pick of #18497: feat(apigateway): report running env
2023-10-31 19:28:06 +08:00
Zexi Li
c5923cc4b9 Merge pull request #18512 from gouqi11/automated-cherry-pick-of-#18511-upstream-release-3.11
Automated cherry pick of #18511: fix(scheduledtask): supportCycleType week and month
2023-10-31 19:27:33 +08:00
wanyaoqi
732d70d6e5 fix(host): detect blk dev numqueues and nics(no id) pci addresses 2023-10-31 19:17:18 +08:00
屈轩
d33e1f6371 fix(keystone): validate time_zone input (#18506) 2023-10-31 18:41:26 +08:00
马鸿飞
8fddf20c68 fix(scheduledtask): supportCycleType week and month 2023-10-31 17:44:31 +08:00
Qiu Jian
9e2e2d6b8d fix: dhcp hostname not compatible with some os 2023-10-31 12:02:53 +08:00
Zexi Li
304e520ce6 Merge pull request #18495 from ioito/automated-cherry-pick-of-#18494-upstream-release-3.11
Automated cherry pick of #18494: fix(region): vendor update
2023-10-30 20:39:37 +08:00
Zexi Li
c895e5bc7c Merge pull request #18479 from swordqiu/automated-cherry-pick-of-#18478-upstream-release-3.11
Automated cherry pick of #18478: fix: scheduler ping/pong response mime
2023-10-30 20:37:25 +08:00
Zexi Li
c24b0a4082 feat(apigateway): report running env 2023-10-30 20:32:54 +08:00
ioito
f4b74c790c fix(region): vendor update 2023-10-30 20:09:47 +08:00
屈轩
30f2fda002 fix(region): vendor update (#18493) 2023-10-30 17:03:39 +08:00
屈轩
097237eb8c fix(region): qcloud security group rule priority (#18489) 2023-10-30 17:03:17 +08:00
屈轩
69e8ab1936 fix(region): avoid hostname has '-' suffix (#18486) 2023-10-30 17:02:32 +08:00
屈轩
0f8443905a fix(region): gpu spec (#18483) 2023-10-30 14:39:09 +08:00
屈轩
f58532081e fix(region): kvm secgroup filter (#18477) 2023-10-30 13:55:25 +08:00
Qiu Jian
335ff385c5 fix: scheduler ping/pong response mime 2023-10-30 13:17:09 +08:00
Zexi Li
99563805ec Merge pull request #18457 from ioito/automated-cherry-pick-of-#18456-upstream-release-3.11
Automated cherry pick of #18456: fix(region): add gpu log
2023-10-30 10:05:08 +08:00
Zexi Li
03b9501ccb Merge pull request #18473 from ioito/automated-cherry-pick-of-#18472-upstream-release-3.11
Automated cherry pick of #18472: fix(region): security group rule priority validate
2023-10-30 10:03:33 +08:00
Zexi Li
06f3ca8588 Merge pull request #18475 from wanyaoqi/automated-cherry-pick-of-#17671-upstream-release-3.11
Automated cherry pick of #17671: feat(region): add guest rescue api
2023-10-30 10:02:12 +08:00
boironic@gmail.com
7f0fdc3739 feat(region): add guest rescue api && download initrd from baremetal tftp server && add baremetal agent ip finder & update pic address & support ip kernel config. 2023-10-29 20:56:26 +08:00
屈轩
6fb42c4d2c fix(region): kvm server cnt (#18470) 2023-10-27 19:39:18 +08:00
ioito
3b98af9628 fix(region): security group rule priority validate 2023-10-27 19:35:54 +08:00
屈轩
3364a94082 fix(region): vendor update (#18467) 2023-10-27 16:40:50 +08:00
屈轩
0b3ae628c4 fix(region): vendor update (#18465) 2023-10-27 16:08:04 +08:00
屈轩
eb7eb8795b fix(region): aliyun cloud_auto enable burst (#18461) 2023-10-27 15:18:41 +08:00
Zexi Li
9064790c84 Merge pull request #18443 from swordqiu/automated-cherry-pick-of-#18442-upstream-release-3.11
Automated cherry pick of #18442: fix: support rocky linux guestfs
2023-10-27 10:04:14 +08:00
Zexi Li
af70eec115 Merge pull request #18449 from ioito/automated-cherry-pick-of-#18448-upstream-release-3.11
Automated cherry pick of #18448: fix(region): 避免esxi vm没有被真正删除
2023-10-27 10:03:05 +08:00
屈轩
7a6a962790 fix(region): remove useless code (#18455) 2023-10-26 18:35:07 +08:00
ioito
fc8c45e2de fix(region): add gpu log 2023-10-26 18:03:57 +08:00
屈轩
d867fd0251 fix(region): security group rule update (#18452) 2023-10-26 17:58:03 +08:00
ioito
fb911b41ab fix(region): 避免esxi vm没有被真正删除 2023-10-26 14:48:22 +08:00
Zexi Li
756fd92a27 Merge pull request #18446 from ioito/automated-cherry-pick-of-#18445-upstream-release-3.11
Automated cherry pick of #18445: fix(region): fix #18397 esxi vm set tags
2023-10-26 12:11:46 +08:00
ioito
a3b080334c fix(region): fix #18397 esxi vm set tags 2023-10-26 11:41:29 +08:00
屈轩
f03617c18f fix(region): vendor update (#18441) 2023-10-26 11:23:29 +08:00
Qiu Jian
f547d6bc47 fix: support rocky linux guestfs 2023-10-26 11:20:35 +08:00
Zexi Li
c1d148d4e3 Merge pull request #18417 from swordqiu/automated-cherry-pick-of-#18416-upstream-release-3.11
Automated cherry pick of #18416: fix: auto sync esxi host status periodically
2023-10-26 10:08:49 +08:00
Zexi Li
ecc63f3501 Merge pull request #18436 from wanyaoqi/automated-cherry-pick-of-#18435-upstream-release-3.11
Automated cherry pick of #18435: Fix/misc fix 20231025
2023-10-26 10:07:58 +08:00
Zexi Li
9ce1f2322c Merge pull request #18438 from ioito/automated-cherry-pick-of-#18434-upstream-release-3.11
Automated cherry pick of #18434: Hotfix/qx clean scheduler
2023-10-26 10:06:25 +08:00
ioito
f0ac779e55 fix(region): 避免频繁清理调度器缓存 2023-10-26 09:55:03 +08:00
wanyaoqi
835bdf2c15 fix(region): guest start check vcpu is enough 2023-10-25 23:55:26 +08:00
wanyaoqi
0508225799 fix(host): skip isolated device probe on kvm not support 2023-10-25 23:54:42 +08:00
wanyaoqi
069a9a8eaf fix(region): rebuild root update guest bios 2023-10-25 23:54:42 +08:00
屈轩
14300e2f91 fix(region): fix cloudaccount sync projectMapping (#18432)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-10-25 20:53:47 +08:00
gouqi11
204a059cae feat(cloudmon): support lbMetric for MetricTypeDriver (#18430)
Co-authored-by: 马鸿飞 <mahongfei@yunion.cn>
2023-10-25 20:38:02 +08:00
屈轩
675468f48c fix(region): vendor update (#18429) 2023-10-25 19:24:42 +08:00
屈轩
6476cea4dc fix(region): vendor update (#18426) 2023-10-25 18:24:53 +08:00
屈轩
860109369d fix(region): secgroup rule fix (#18415) 2023-10-25 17:58:13 +08:00
Zexi Li
82f1952842 Merge pull request #18419 from wanyaoqi/automated-cherry-pick-of-#18418-upstream-release-3.11
Automated cherry pick of #18418: fix(host): live migrate misc fix
2023-10-25 10:20:48 +08:00
wanyaoqi
601d539bba fix(host): live migrate misc fix 2023-10-25 01:59:01 +08:00
Qiu Jian
e89c3a78da fix: auto sync esxi host status periodically 2023-10-24 21:50:44 +08:00
Zexi Li
80b4caeeda feat(climc): always try to print id and name firstly (#18412) 2023-10-24 21:48:35 +08:00
Zexi Li
f1394bed02 feat(climc): always try to print id and name firstly (#18410) 2023-10-24 21:48:26 +08:00
屈轩
f4d34c8ee4 Revert "fix(common): remove service default policy (#18312)" (#18413)
This reverts commit 6ff9e75fb1.
2023-10-24 21:47:50 +08:00
Zexi Li
e2fb312311 Merge pull request #18386 from swordqiu/automated-cherry-pick-of-#18385-upstream-release-3.11
Automated cherry pick of #18385: fix: capabilities brand revisit
2023-10-24 20:01:47 +08:00
Zexi Li
e2af2f2602 Merge pull request #18409 from ioito/automated-cherry-pick-of-#18408-upstream-release-3.11
Automated cherry pick of #18408: fix(region): kube cluster brand
2023-10-24 19:50:14 +08:00
ioito
6fadaec519 fix(region): kube cluster brand 2023-10-24 18:50:26 +08:00
Zexi Li
30746be01e Merge pull request #18407 from gouqi11/automated-cherry-pick-of-#18396-upstream-release-3.11
Automated cherry pick of #18396: feat(notify): Allow direct notification sending
2023-10-24 15:39:00 +08:00
马鸿飞
b0ccc84260 feat(notify): Allow direct notification sending 2023-10-24 15:24:42 +08:00
Zexi Li
b7db6d4535 Merge pull request #18404 from zexi/automated-cherry-pick-of-#18403-upstream-release-3.11
Automated cherry pick of #18403: fix(scheduler): fetch host storages directly
2023-10-24 14:37:28 +08:00
Zexi Li
bdaf659a28 fix(scheduler): fetch host storages directly 2023-10-24 14:26:49 +08:00
Zexi Li
6583094e85 Merge pull request #18401 from ioito/automated-cherry-pick-of-#18400-upstream-release-3.11
Automated cherry pick of #18400: fix(region): aws eip not found error
2023-10-24 14:23:37 +08:00
ioito
631c255970 fix(region): aws eip not found error 2023-10-24 13:25:30 +08:00
Zexi Li
51f5b01c4e Merge pull request #18394 from wanyaoqi/automated-cherry-pick-of-#18393-upstream-release-3.11
Automated cherry pick of #18393: fix(host-deployer): deploy qga conf according hypervisor
2023-10-23 11:43:27 +08:00
Zexi Li
51ab18e0ba Merge pull request #18384 from wanyaoqi/automated-cherry-pick-of-#18383-upstream-release-3.11
Automated cherry pick of #18383: fix(region,host): live migrate disk driver determines the migration mode
2023-10-23 11:18:03 +08:00
Zexi Li
e0ab303771 Merge pull request #18390 from ioito/automated-cherry-pick-of-#18389-upstream-release-3.11
Automated cherry pick of #18389: fix(apigateway): baremetal usage
2023-10-23 11:17:15 +08:00
wanyaoqi
e8f4e85943 fix(host-deployer): deploy qga conf according hypervisor 2023-10-23 10:48:10 +08:00
ioito
6bf139297c fix(apigateway): baremetal usage 2023-10-23 10:38:14 +08:00
Zexi Li
6e679a88be Merge pull request #18356 from gouqi11/automated-cherry-pick-of-#18161-upstream-release-3.11
Automated cherry pick of #18161: feat(scheduledTask): support cycle_hour
2023-10-23 10:17:33 +08:00
Qiu Jian
e2a843f018 fix: capabilities brand revisit 2023-10-23 10:16:32 +08:00
wanyaoqi
679ddfa3d0 fix(region,host): live migrate disk driver determines the migration mode 2023-10-23 10:12:21 +08:00
马鸿飞
50bd35b558 feat(scheduledTask): support cycle_hour 2023-10-23 10:07:05 +08:00
Jian Qiu
675d453f02 fix: vpcagent sync error (#18382)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-23 09:27:32 +08:00
wanyaoqi
f5b1c828f1 feat(region,host): cloudpods guest convert to kvm guest (#18378) 2023-10-23 09:25:51 +08:00
Zexi Li
e97408dca8 fix(scheduler): improve scheduler prefer and avoid tags strategy (#18373) 2023-10-20 20:46:14 +08:00
Zexi Li
8a89981f79 Merge pull request #18366 from swordqiu/automated-cherry-pick-of-#18365-upstream-release-3.11
Automated cherry pick of #18365: fix: auto convert missing subformat images
2023-10-20 12:28:28 +08:00
Zexi Li
5215a7baff Merge pull request #18363 from swordqiu/automated-cherry-pick-of-#18362-upstream-release-3.11
Automated cherry pick of #18362: fix: fail to fetch admin ssh keypair
2023-10-20 10:35:18 +08:00
Qiu Jian
dd2a61e9a6 fix: auto convert missing subformat images 2023-10-20 10:23:51 +08:00
Qiu Jian
b394e58ee4 fix: fail to fetch admin ssh keypair 2023-10-20 05:42:05 +08:00
Zexi Li
7e7b6512f4 Merge pull request #18361 from ioito/automated-cherry-pick-of-#18360-upstream-release-3.11
Automated cherry pick of #18360: fix(region): aws lb sync panic
2023-10-19 20:34:13 +08:00
ioito
b7ec468b03 fix(region): aws lb sync panic 2023-10-19 20:15:21 +08:00
Jian Qiu
b6e1e9d226 fix: allow vmware network associate with multiple wires (#18341)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-19 09:15:40 +08:00
wanyaoqi
64310bf4df fix(host-deployer): change netdev prefix to "en" on nics has different driver (#18330)
Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
2023-10-18 20:40:46 +08:00
Jian Qiu
99f671d567 fix: missing project mapping body (#18353)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-18 20:39:38 +08:00
屈轩
d5a3913a1f fix: docgengo (#18351) 2023-10-18 06:19:10 -05:00
屈轩
a6bab03c85 feature: add support for for VolcEngine (#18349)
Co-authored-by: kongrui <kongr@lamda.nju.edu.cn>
2023-10-18 06:05:41 -05:00
Zexi Li
2e761505bf Merge pull request #18343 from swordqiu/automated-cherry-pick-of-#18342-upstream-release-3.11
Automated cherry pick of #18342: fix: unable to recognize anolis os
2023-10-18 15:00:30 +08:00
屈轩
ca89d83e4f fix(climc): 避免climc交互模式下--help自动退出 (#18339) 2023-10-17 20:58:49 -05:00
Qiu Jian
aafab22bb7 fix: unable to recognize anolis os 2023-10-18 01:54:29 +08:00
屈轩
6d49f8c5c8 fix(region): standardization stage name (#18300) 2023-10-18 01:26:36 +08:00
Zexi Li
c59daea668 Merge pull request #18323 from gouqi11/automated-cherry-pick-of-#18320-upstream-release-3.11
Automated cherry pick of #18320: fix(notify): fix role subscriber groupTimes
2023-10-17 12:24:11 +08:00
Zexi Li
dd151944ca Merge pull request #18326 from wanyaoqi/automated-cherry-pick-of-#18325-upstream-release-3.11
Automated cherry pick of #18325: fix(scheduler): isolated device predicate miss sriov nic
2023-10-17 11:51:10 +08:00
wanyaoqi
0fa98f7b82 fix(scheduler): isolated device predicate miss sriov nic 2023-10-16 16:22:19 +08:00
马鸿飞
99afc444a7 fix(notify): fix role subscriber groupTimes 2023-10-16 15:59:33 +08:00
屈轩
847459f2a8 fix(common): distinguish system and user log by is_system_account (#18317) 2023-10-15 20:58:09 -05:00
屈轩
6ff9e75fb1 fix(common): remove service default policy (#18312) 2023-10-13 14:00:39 +08:00
屈轩
115eb587e3 fix(region): show network details with dns (#18289) 2023-10-13 07:43:42 +08:00
屈轩
1b74a9c6a0 fix(keystone): policy result (#18285) 2023-10-13 07:41:12 +08:00
Jian Qiu
b4b9485068 fix: update vendor for edito retry (#18309)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-13 07:29:04 +08:00
Jian Qiu
4e9957c3f2 fix: climc server-logininfo action (#18296)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-12 20:19:02 +08:00
屈轩
afc77d0c7b fix(region): classify invalid access key error (#18305) 2023-10-12 20:17:49 +08:00
屈轩
05ab9311b3 fix(region): avoid ctyun signature verification failed (#18302) 2023-10-12 19:08:39 +08:00
屈轩
0809d6ecfa fix(region): remove ctyun useless env paramenter (#18293) 2023-10-12 18:06:12 +08:00
屈轩
d97ec1c7b5 fix(region): aws userdata error fix (#18290) 2023-10-12 17:27:31 +08:00
Jian Qiu
2a5ba4d77f fix: update vendor 20231012 for sqlchemy (#18282)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-12 16:56:59 +08:00
屈轩
8bd9b78e21 fix(region): history usage (#18260) 2023-10-12 16:30:59 +08:00
Zexi Li
7c836a4993 Merge pull request #18279 from gouqi11/automated-cherry-pick-of-#18267-upstream-release-3.11
Automated cherry pick of #18267: feat(notify): support db_dispatcher notify
2023-10-12 15:51:13 +08:00
马鸿飞
7423ca9726 feat(notify): support db_dispatcher notify 2023-10-12 15:39:54 +08:00
Zexi Li
a1e77ea061 Merge pull request #18276 from ioito/automated-cherry-pick-of-#18275-upstream-release-3.11
Automated cherry pick of #18275: fix(region): use project sshkeypair to ssh vm
2023-10-12 14:59:45 +08:00
wanyaoqi
accc92da16 fix(host): check qga connect is closed (#18272) 2023-10-12 14:49:02 +08:00
ioito
0d85f41098 fix(region): use project sshkeypair to ssh vm 2023-10-12 14:24:02 +08:00
Zexi Li
2881f82226 Merge pull request #18265 from ioito/automated-cherry-pick-of-#18264-upstream-release-3.11
Automated cherry pick of #18264: fix(region): dns record cname check
2023-10-11 18:09:26 +08:00
Zexi Li
2b33c44d59 Merge pull request #18254 from zexi/server-ip-regexp-list
feat(region): filter server ip_addrs by REGEXP
2023-10-11 17:19:24 +08:00
屈轩
b32444047d fix(region): wait vm deleted (#18262) 2023-10-11 17:19:15 +08:00
ioito
560444bc25 fix(region): dns record cname check 2023-10-11 17:12:30 +08:00
Zexi Li
0c0bc34e67 Merge pull request #18251 from swordqiu/automated-cherry-pick-of-#18250-upstream-release-3.11
Automated cherry pick of #18250: fix: guest start params revisit
2023-10-11 17:11:06 +08:00
Zexi Li
7104d73ba6 feat(region): filter server ip_addrs by REGEXP 2023-10-11 17:03:16 +08:00
屈轩
ff414105cb fix: vendor update (#18258) 2023-10-11 16:22:28 +08:00
Qiu Jian
02db6f01e7 fix: guest start params revisit 2023-10-11 05:43:57 +08:00
Zexi Li
ca2ebb35f4 Merge pull request #18249 from zexi/automated-cherry-pick-of-#18246-upstream-release-3.11
Automated cherry pick of #18246: fix(monitor): select host that isn't in source hosts as target
2023-10-10 20:04:19 +08:00
Zexi Li
b21702417a fix(monitor): select host that isn't in source hosts as target 2023-10-10 20:03:55 +08:00
Jian Qiu
83d02d2bf0 fix: allow specify desktop linux os that not allow root login (#18244)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-09 18:38:07 +08:00
wanyaoqi
17733cdd80 fix(host): host sysinfo metadata double quota (#18240) 2023-10-09 18:36:40 +08:00
Zexi Li
37f2bc3fef Merge pull request #18236 from wanyaoqi/automated-cherry-pick-of-#18235-upstream-release-3.11
Automated cherry pick of #18235: fix(host-deployer): deploy qga conf ensure /etc/sysconfig dir
2023-10-09 14:56:30 +08:00
Jian Qiu
c00028ccc6 fix: handle old style auth token (#18233)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-09 12:30:28 +08:00
wanyaoqi
45b744bc50 fix(host-deployer): deploy qga conf ensure /etc/sysconfig dir 2023-10-09 12:23:21 +08:00
Jian Qiu
638c5130c6 fix: unauthorized error should return 401 (#18230)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-08 21:54:21 +08:00
Jian Qiu
5d59e54085 fix: missing invalid token response (#18227)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-08 18:27:38 +08:00
Jian Qiu
e319338460 fix: shorten keystone token (#18223)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-08 11:20:35 +08:00
Zexi Li
f5d466e359 Merge pull request #18220 from gouqi11/automated-cherry-pick-of-#18219-upstream-release-3.11
Automated cherry pick of #18219: feat: support policy and cors for bucket
2023-10-07 17:56:29 +08:00
马鸿飞
5bfa0e03ee feat: support policy and cors for bucket 2023-10-07 17:51:20 +08:00
Zexi Li
27b6f8b8d6 Merge pull request #18211 from ioito/automated-cherry-pick-of-#18210-upstream-release-3.11
Automated cherry pick of #18210: fix(region): vendor update
2023-10-07 13:18:13 +08:00
Zexi Li
27bbc9512f Merge pull request #18208 from wanyaoqi/automated-cherry-pick-of-#18207-upstream-release-3.11
Automated cherry pick of #18207: feat(region,glance): from cloudaccount to enable vmdk target format
2023-10-07 13:16:01 +08:00
ioito
90566723a2 fix(region): vendor update 2023-10-07 10:58:18 +08:00
wanyaoqi
23a7b8f15f feat(region,glance): from cloudaccount to enable vmdk target format 2023-10-07 09:59:39 +08:00
Jian Qiu
8f4fe468ec fix: async refresh revoked tokens (#18205)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-06 13:45:18 +08:00
Zexi Li
c3d782c358 Merge pull request #18200 from swordqiu/automated-cherry-pick-of-#18199-upstream-release-3.11
Automated cherry pick of #18199: feature: invalidate auth token
2023-10-05 19:22:21 +08:00
Qiu Jian
9f7458b58f feature: invalidate auth token 2023-10-05 03:41:15 +08:00
Zexi Li
c811818017 Merge pull request #18190 from swordqiu/automated-cherry-pick-of-#18183-upstream-release-3.11
Automated cherry pick of #18183: feature: SUSE guest support
2023-10-04 00:38:13 +08:00
Qiu Jian
1d1d93858a feature: SUSE guest support 2023-10-02 00:34:19 +08:00
Jian Qiu
a2b17a5492 fix: rebuild root support deploy params (#18188)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-02 00:16:17 +08:00
Jian Qiu
16d380813d fix: host nics api (#18185)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-01 23:40:34 +08:00
Jian Qiu
7e44c015b3 fix: add apis for logininfo (#18181)
Co-authored-by: Qiu Jian <qiujian@yunionyun.com>
2023-10-01 23:39:58 +08:00
Zexi Li
5b066bfd8c Merge pull request #18163 from swordqiu/automated-cherry-pick-of-#18162-upstream-release-3.11
Automated cherry pick of #18162: fix: fail purge disk due to getMastHost failure
2023-09-27 22:52:30 +08:00
Zexi Li
28d541ba78 Merge pull request #18169 from zexi/automated-cherry-pick-of-#18167-upstream-release-3.11
Automated cherry pick of #18167: fix(scheduler): some joint resources are not synced
2023-09-27 22:51:42 +08:00
Zexi Li
f27087867a Merge pull request #18171 from zexi/automated-cherry-pick-of-#18072-upstream-release-3.11
Automated cherry pick of #18072: fix(climc): delete the backup machine from the offline host
2023-09-27 17:10:52 +08:00
hoganlxj
f24cf2fdb0 Update clean_host.sh 2023-09-27 17:09:04 +08:00
Zexi Li
7735720a5e fix(scheduler): some joint resources are not synced 2023-09-27 16:47:36 +08:00
Qiu Jian
e8a52c23be fix: fail purge disk due to getMastHost failure 2023-09-27 14:32:42 +08:00
屈轩
710905c1f2 fix(region): change project log detail (#18154) 2023-09-26 17:58:53 +08:00
Zexi Li
475e698227 Merge pull request #18157 from wanyaoqi/automated-cherry-pick-of-#18156-upstream-release-3.11
Automated cherry pick of #18156: fix(region): remove ansible restart network on guest sync
2023-09-26 17:42:56 +08:00
wanyaoqi
ea3e855655 fix(region): remove ansible restart network on guest sync 2023-09-26 15:47:19 +08:00
Zexi Li
76bd871ef8 Merge pull request #18151 from zexi/automated-cherry-pick-of-#18124-upstream-release-3.11
Automated cherry pick of #18124: fix: charset mismatch in tenant cache convert_ids
2023-09-25 16:58:33 +08:00
Qiu Jian
b6446c8007 fix: charset mismatch in tenant cache convert_ids 2023-09-25 16:58:12 +08:00
Zexi Li
bd3c32b3a3 Merge pull request #18150 from zexi/automated-cherry-pick-of-#18126-upstream-release-3.11
Automated cherry pick of #18126: fix(region): hide agent status
2023-09-25 16:56:53 +08:00
Zexi Li
27b0b342b4 fix(region): hide agent status 2023-09-25 16:56:09 +08:00
Zexi Li
ef52ad5f25 Merge pull request #18146 from ioito/automated-cherry-pick-of-#18145-upstream-release-3.11
Automated cherry pick of #18145: fix(region): aliyun health check tls error
2023-09-25 16:53:49 +08:00
屈轩
efdb5beb71 fix(region): avoid panic after created vm (#18142) 2023-09-25 15:12:43 +08:00
ioito
7de4c55dfc fix(region): aliyun health check tls error 2023-09-25 15:11:10 +08:00
Zexi Li
6ee8be68cd Merge pull request #18137 from ioito/automated-cherry-pick-of-#18136-upstream-release-3.11
Automated cherry pick of #18136: fix(region): account ctx unlock
2023-09-22 16:49:54 +08:00
Zexi Li
f59d2bd256 Merge pull request #18115 from ioito/automated-cherry-pick-of-#18114-upstream-release-3.11
Automated cherry pick of #18114: fix(region): network update detail error
2023-09-22 16:48:33 +08:00
ioito
1f6f9d6adc fix(region): account ctx unlock 2023-09-22 16:22:39 +08:00
屈轩
bac4faf202 fix(region): aws disk type (#18133) 2023-09-22 14:17:31 +08:00
ioito
c2546c31a7 fix(region): network update detail error 2023-09-22 10:11:06 +08:00
Zexi Li
ea50886aa1 Merge pull request #18097 from wanyaoqi/automated-cherry-pick-of-#18096-upstream-release-3.11
Automated cherry pick of #18096: Fix/backup guest prelaunch
2023-09-21 22:43:58 +08:00
Zexi Li
1cf6a5d9db Merge pull request #18092 from wanyaoqi/automated-cherry-pick-of-#18091-upstream-release-3.11
Automated cherry pick of #18091: fix(host): insert iso name not correct
2023-09-21 22:42:04 +08:00
Zexi Li
6cb3a055ae Merge pull request #18081 from wanyaoqi/automated-cherry-pick-of-#18080-upstream-release-3.11
Automated cherry pick of #18080: Fix/host delete validate
2023-09-21 22:41:26 +08:00
Zexi Li
a5b782fdeb Merge pull request #18067 from wanyaoqi/automated-cherry-pick-of-#18065-upstream-release-3.11
Automated cherry pick of #18065: fix(region,host): cancel migrate sync guest status
2023-09-21 22:40:37 +08:00
Zexi Li
9d94a7355d Merge pull request #18077 from wanyaoqi/automated-cherry-pick-of-#18076-upstream-release-3.11
Automated cherry pick of #18076: fix(region,host): guest save image restart not work
2023-09-21 22:39:18 +08:00
Zexi Li
4cb465ab35 Merge pull request #18088 from wanyaoqi/automated-cherry-pick-of-#17858-upstream-release-3.11
Automated cherry pick of #17858: feat(region,host,host-deployer): add qga set network
2023-09-21 20:57:02 +08:00
Zexi Li
00a1659ce8 Merge pull request #18074 from wanyaoqi/automated-cherry-pick-of-#18073-upstream-release-3.11
Automated cherry pick of #18073: feat(region): host list filter by host storage type
2023-09-21 20:54:54 +08:00
屈轩
3d329d7412 fix(esxi-agent): vmware hostname (#18122) 2023-09-21 20:50:24 +08:00
屈轩
7c62173d3f fix(region): cloudpods userdata (#18118) 2023-09-21 20:49:32 +08:00
屈轩
3c14711346 fix(region): avoid deadlock for delete account (#18100) 2023-09-21 14:56:30 +08:00
屈轩
a8ba3a4ec5 fix(region): fix #18106 remove change chonfig stop charing restrict (#18108) 2023-09-21 14:55:23 +08:00
屈轩
3daf38b6a0 fix(region): guest vnc error (#18103) 2023-09-21 14:54:40 +08:00
屈轩
fcc5b2eae1 fix(region): server sku cpu arch filter (#18111) 2023-09-21 14:53:07 +08:00
wanyaoqi
9d7a49ebdf fix(host): avoid panic on host record not init 2023-09-21 11:04:39 +08:00
wanyaoqi
3d1507b0e4 fix(host): cancel backup guest prelaunch 2023-09-21 11:04:39 +08:00
wanyaoqi
e5be78e740 fix(host): insert iso name not correct 2023-09-20 21:24:56 +08:00
屈轩
22d0608786 fix(region): kube cluster version (#18084) 2023-09-20 20:18:16 +08:00
屈轩
2e74e42bde fix(region): vendor update (#18087) 2023-09-20 20:17:24 +08:00
chentianxiang
260a9cbe87 feat(region,host,host-deployer):use qga set network 2023-09-20 20:07:24 +08:00
wanyaoqi
1f4079a863 fix(region): validate is reserve all cpus 2023-09-20 19:41:04 +08:00
wanyaoqi
53d4b0c1b7 fix(region): host delete validate backup guests 2023-09-20 19:41:04 +08:00
wanyaoqi
a538e215b8 fix(region,host): guest save image restart not work 2023-09-20 19:37:25 +08:00
wanyaoqi
00a1ddc508 feat(region): host list filter by host storage type 2023-09-20 19:34:30 +08:00
wanyaoqi
a49148c7e4 fix(region,host): cancel migrate sync guest status 2023-09-20 00:21:02 +08:00
2703 changed files with 282191 additions and 88858 deletions

38
.github/workflows/ci-pr-build-test.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
name: Building and test for PR
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
build_and_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '1.18'
- name: Install check tools
shell: bash
run: |
set -o xtrace
git clone --branch yun --depth 4 https://github.com/yousong/tools && cd tools
go build ./cmd/goimports && sudo cp goimports /usr/bin/ && cd .. && rm -rf tools
git clone --depth 4 https://github.com/yousong/y18n && cd y18n
go build . && sudo cp y18n /usr/bin && cd .. && rm -rf y18n
- name: Test and build
shell: bash
run: |
set -o xtrace
export GO111MODULE=on
make -j3 check
make test
targets="$(find cmd -mindepth 1 -maxdepth 1 -type d | grep -v cmd/host-image)"
echo $targets | tr ' ' '\n'
make $targets
ls -lh _output/bin

View File

@@ -282,7 +282,7 @@ dep:
@echo "$$depDeprecated"
@$(MAKE) mod
RELEASE_BRANCH:=master
RELEASE_BRANCH:=release/3.11
GOPROXY ?= direct
mod:
@@ -349,7 +349,7 @@ image:
.PHONY: image
image-telegraf-raid-plugin:
VERSION=release-1.6.4 ARCH=all make image telegraf-raid-plugin
VERSION=release-1.6.5 ARCH=all make image telegraf-raid-plugin
%:
@:

View File

@@ -1,8 +1,21 @@
export PATH=/opt/yunion/bin:$PATH
if [ -f /etc/profile.d/bash_completion.sh ]; then
source /etc/profile.d/bash_completion.sh
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)
echo "Welcome to Cloud Shell :-) You may execute climc and other command tools in this shell."
echo "Please exec 'climc' to get started"

View File

@@ -47,6 +47,11 @@ do
climc server-purge $i > /dev/null
done
for i in $(climc server-list --admin --limit 2048 --system --filter "backup_host_id.equals($HOSTID)" | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $2}')
do
climc server-delete-backup $i > /dev/null
done
echo "3. Clean disks on $HOSTNAME($HOSTID)"
for storageid in $(climc host-storage-list --host $HOSTID --show-emulated | egrep '[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}' | awk '{print $4}')

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,7 +1,7 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:v1.1.1
# install playbook and telegraf install pkg
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.4.0 /opt/yunion/playbook /opt/yunion/playbook
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.4.0 /opt/yunion/ansible-install-pkg /opt/yunion/ansible-install-pkg
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.2 /opt/yunion/playbook /opt/yunion/playbook
COPY --from=registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.5.2 /opt/yunion/ansible-install-pkg /opt/yunion/ansible-install-pkg
ADD ./_output/alpine-build/bin/ansibleserver /opt/yunion/bin/ansibleserver

View File

@@ -9,12 +9,20 @@ RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /e
# openssh-client, for ansible ssh connection
# git, ca-certificates, for fetching ansible roles
RUN set -x \
&& apk update \
&& apk add openssh-client \
&& apk add sshpass \
&& apk add ansible \
&& apk add py3-pip \
&& apk add tzdata git ca-certificates \
&& rm -rf /var/cache/apk/*
&& apk update \
&& apk add openssh-client \
&& apk add sshpass \
&& apk add py3-pip \
&& apk add tzdata git ca-certificates
RUN pip3 install pywinrm
RUN apk add --no-cache openssh openssl curl rsync pv mariadb-client
RUN apk add --no-cache --virtual .build-dependencies \
libffi-dev openssl-dev python3-dev build-base py-setuptools rust cargo mariadb-dev
# ansible should be installed
# after setuptools and wheel
RUN pip3 install -U pip setuptools wheel \
&& pip3 install paramiko mysqlclient pywinrm \
&& pip3 install 'ansible<=9.0.0' \
&& apk del --no-network .build-dependencies \
&& rm -rf /root/.cache /root/.cargo /var/cache/apk/*

View File

@@ -1,4 +1,4 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/baremetal-base:v0.3.9-20230812.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/baremetal-base:v0.3.9-20231219.0
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"

View File

@@ -1,7 +1,7 @@
#FROM --platform=linux/amd64 registry.cn-beijing.aliyuncs.com/yunionio/centos-build:1.1-4 as build
#RUN yum install -y https://iso.yunion.cn/vm-images/baremetal-pxerom-1.1.0-21092209.x86_64.rpm
#RUN yum install -y http://192.168.23.50:8083/baremetal-pxerom-1.1.0-21092209.x86_64.rpm
FROM registry.cn-beijing.aliyuncs.com/yunionio/yunionos:v0.1.8-20230812.0 as yunionos
FROM registry.cn-beijing.aliyuncs.com/yunionio/yunionos:v3.10.8-20231215.0 as yunionos
FROM centos:8 as grub-stage

View File

@@ -0,0 +1,6 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.3.5-1
ADD ./_output/alpine-build/bin/dhcprelay /opt/yunion/bin/dhcprelay
ENV PATH $PATH:/opt/yunion/bin
WORKDIR /opt/yunion/bin

View File

@@ -1,3 +1,5 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/file-repo:v0.4.0 as file-repo
FROM registry.cn-beijing.aliyuncs.com/yunionio/onecloud-base:v0.2
MAINTAINER "Rain Zheng <zhengyu@yunion.com>"
@@ -11,12 +13,13 @@ RUN set -x \
# install default playbook and install pkg
Run mkdir -p /opt/yunion/ansible-install-pkg
Run wget https://yunioniso.oss-cn-beijing.aliyuncs.com/rpms/telegraf/telegraf-1.19.2-yn~be742cbf-0.x86_64.rpm -P /opt/yunion/ansible-install-pkg
Run wget https://yunioniso.oss-cn-beijing.aliyuncs.com/rpms/telegraf/telegraf-1.19.2-yn~be742cbf-0.aarch64.rpm -P /opt/yunion/ansible-install-pkg
Run wget https://yunioniso.oss-cn-beijing.aliyuncs.com/rpms/telegraf/telegraf_1.19.2-yn~be742cbf-0_arm64.deb -P /opt/yunion/ansible-install-pkg
Run wget https://yunioniso.oss-cn-beijing.aliyuncs.com/rpms/telegraf/telegraf_1.19.2-yn~be742cbf-0_amd64.deb -P /opt/yunion/ansible-install-pkg
Run wget https://yunioniso.oss-cn-beijing.aliyuncs.com/rpms/telegraf/telegraf-1.19.2-yn~be742cbf_windows_amd64.zip -P /opt/yunion/ansible-install-pkg
Run wget https://yunioniso.oss-cn-beijing.aliyuncs.com/rpms/telegraf/telegraf-1.19.2-yn~be742cbf_windows_i386.zip -P /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf-1.19.2-yn~be742cbf-0.x86_64.rpm /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf-1.19.2-yn~be742cbf-0.aarch64.rpm /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf_1.19.2-yn~be742cbf-0_arm64.deb /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf_1.19.2-yn~be742cbf-0_amd64.deb /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf-1.19.2-yn~be742cbf_windows_amd64.zip /opt/yunion/ansible-install-pkg
COPY --from=file-repo /opt/yunion/ansible-install-pkg/telegraf-1.19.2-yn~be742cbf_windows_i386.zip /opt/yunion/ansible-install-pkg
Run mkdir -p /opt/yunion/playbook
Run mkdir /opt/yunion/playbook/monitor-agent

View File

@@ -0,0 +1,214 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
#
#
# Dockerfile for guacamole-server
#
# The Alpine Linux image that should be used as the basis for the guacd image
ARG ALPINE_BASE_IMAGE=latest
FROM alpine:${ALPINE_BASE_IMAGE} AS builder
ARG TARGETPLATFORM
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
# Install build dependencies
RUN apk add --no-cache \
autoconf \
automake \
build-base \
cairo-dev \
cmake \
cunit-dev \
git \
grep \
libjpeg-turbo-dev \
libpng-dev \
libtool \
libwebp-dev \
make \
openssl1.1-compat-dev \
pango-dev \
pulseaudio-dev \
util-linux-dev
# Copy source to container for sake of build
ARG BUILD_DIR=/tmp/guacamole-server
ARG GUAC_VER=1.5.3
RUN git clone --branch=${GUAC_VER} https://github.com/apache/guacamole-server.git /tmp/guacamole-server
#
# Base directory for installed build artifacts.
#
# NOTE: Due to limitations of the Docker image build process, this value is
# duplicated in an ARG in the second stage of the build.
#
ARG PREFIX_DIR=/opt/guacamole
#
# Automatically select the latest versions of each core protocol support
# library (these can be overridden at build time if a specific version is
# needed)
#
ARG WITH_FREERDP='2(\.\d+)+'
ARG WITH_LIBSSH2='libssh2-\d+(\.\d+)+'
ARG WITH_LIBTELNET='\d+(\.\d+)+'
ARG WITH_LIBVNCCLIENT='LibVNCServer-\d+(\.\d+)+'
ARG WITH_LIBWEBSOCKETS='v\d+(\.\d+)+'
#
# Default build options for each core protocol support library, as well as
# guacamole-server itself (these can be overridden at build time if different
# options are needed)
#
ARG FREERDP_OPTS="\
-DBUILTIN_CHANNELS=OFF \
-DCHANNEL_URBDRC=OFF \
-DWITH_ALSA=OFF \
-DWITH_CAIRO=ON \
-DWITH_CHANNELS=ON \
-DWITH_CLIENT=ON \
-DWITH_CUPS=OFF \
-DWITH_DIRECTFB=OFF \
-DWITH_FFMPEG=OFF \
-DWITH_GSM=OFF \
-DWITH_GSSAPI=OFF \
-DWITH_IPP=OFF \
-DWITH_JPEG=ON \
-DWITH_LIBSYSTEMD=OFF \
-DWITH_MANPAGES=OFF \
-DWITH_OPENH264=OFF \
-DWITH_OPENSSL=ON \
-DWITH_OSS=OFF \
-DWITH_PCSC=OFF \
-DWITH_PULSE=OFF \
-DWITH_SERVER=OFF \
-DWITH_SERVER_INTERFACE=OFF \
-DWITH_SHADOW_MAC=OFF \
-DWITH_SHADOW_X11=OFF \
-DWITH_SSE2=ON \
-DWITH_WAYLAND=OFF \
-DWITH_X11=OFF \
-DWITH_X264=OFF \
-DWITH_XCURSOR=ON \
-DWITH_XEXT=ON \
-DWITH_XI=OFF \
-DWITH_XINERAMA=OFF \
-DWITH_XKBFILE=ON \
-DWITH_XRENDER=OFF \
-DWITH_XTEST=OFF \
-DWITH_XV=OFF \
-DWITH_ZLIB=ON"
ARG GUACAMOLE_SERVER_OPTS="\
--disable-guaclog"
ARG LIBSSH2_OPTS="\
-DBUILD_EXAMPLES=OFF \
-DBUILD_SHARED_LIBS=ON"
ARG LIBTELNET_OPTS="\
--disable-static \
--disable-util"
ARG LIBVNCCLIENT_OPTS=""
ARG LIBWEBSOCKETS_OPTS="\
-DDISABLE_WERROR=ON \
-DLWS_WITHOUT_SERVER=ON \
-DLWS_WITHOUT_TESTAPPS=ON \
-DLWS_WITHOUT_TEST_CLIENT=ON \
-DLWS_WITHOUT_TEST_PING=ON \
-DLWS_WITHOUT_TEST_SERVER=ON \
-DLWS_WITHOUT_TEST_SERVER_EXTPOLL=ON \
-DLWS_WITH_STATIC=OFF"
# Build guacamole-server and its core protocol library dependencies
RUN echo "$TARGETPLATFORM"
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; \
then FREERDP_OPTS="${FREERDP_OPTS} -DWITH_SSE2=ON" && echo "SSE2 active"; \
else FREERDP_OPTS="${FREERDP_OPTS} -DWITH_SSE2=OFF" && echo "SSE2 disabled"; \
fi && ${BUILD_DIR}/src/guacd-docker/bin/build-all.sh
# Record the packages of all runtime library dependencies
RUN ${BUILD_DIR}/src/guacd-docker/bin/list-dependencies.sh \
${PREFIX_DIR}/sbin/guacd \
${PREFIX_DIR}/lib/libguac-client-*.so \
${PREFIX_DIR}/lib/freerdp2/*guac*.so \
> ${PREFIX_DIR}/DEPENDENCIES
# Use same Alpine version as the base for the runtime image
FROM alpine:${ALPINE_BASE_IMAGE}
RUN sed -i 's!https://dl-cdn.alpinelinux.org/!https://mirrors.ustc.edu.cn/!g' /etc/apk/repositories
#
# Base directory for installed build artifacts. See also the
# CMD directive at the end of this build stage.
#
# NOTE: Due to limitations of the Docker image build process, this value is
# duplicated in an ARG in the first stage of the build.
#
ARG PREFIX_DIR=/opt/guacamole
# Runtime environment
ENV LC_ALL=C.UTF-8
ENV LD_LIBRARY_PATH=${PREFIX_DIR}/lib
ENV GUACD_LOG_LEVEL=info
# Copy build artifacts into this stage
COPY --from=builder ${PREFIX_DIR} ${PREFIX_DIR}
# Bring runtime environment up to date and install runtime dependencies
RUN apk add --no-cache \
ca-certificates \
ghostscript \
netcat-openbsd \
shadow \
terminus-font \
ttf-dejavu \
ttf-liberation \
util-linux-login && \
xargs apk add --no-cache < ${PREFIX_DIR}/DEPENDENCIES
# Checks the operating status every 5 minutes with a timeout of 5 seconds
HEALTHCHECK --interval=5m --timeout=5s CMD nc -z 127.0.0.1 4822 || exit 1
# Create a new user guacd
ARG UID=1000
ARG GID=1000
RUN groupadd --gid $GID guacd
RUN useradd --system --create-home --shell /sbin/nologin --uid $UID --gid $GID guacd
RUN mkdir -p /opt/cloudpods
RUN chown -R guacd:guacd /opt/cloudpods
# Run with user guacd
USER guacd
# Expose the default listener port
EXPOSE 4822
# Start guacd, listening on port 0.0.0.0:4822
#
# Note the path here MUST correspond to the value specified in the
# PREFIX_DIR build argument.
#
CMD /opt/guacamole/sbin/guacd -b 0.0.0.0 -L $GUACD_LOG_LEVEL -f

View File

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

View File

@@ -15,7 +15,7 @@ onecloud-base:
onecloud-base-3-15-4:
$(DOCKER_BUILDX)/onecloud-base:$(ONECLOUD_BASE_VERSION_3-15-4) -f ./Dockerfile.onecloud-base-3-15-4 .
ANSIBLESERVER_BASE = v1.1.1
ANSIBLESERVER_BASE = v1.1.2
ansibleserver-base:
$(DOCKER_BUILDX)/ansibleserver-base:$(ANSIBLESERVER_BASE) -f ./Dockerfile.ansibleserver-base .
@@ -30,7 +30,7 @@ WEBCONSOLE_BASE_VERSION = 20230731.2
webconsole-base:
$(DOCKER_BUILDX)/webconsole-base:$(WEBCONSOLE_BASE_VERSION) -f ./Dockerfile.webconsole-base .
BAREMETAL_BASE_VERSION = v0.3.9-20230812.0
BAREMETAL_BASE_VERSION = v0.3.9-20231219.1
baremetal-base:
$(DOCKER_BUILDX)/baremetal-base:$(BAREMETAL_BASE_VERSION) -f ./Dockerfile.baremetal-base .
@@ -44,7 +44,7 @@ GLANCE_BASE_VERSION = v0.0.1
glance-base:
$(DOCKER_BUILDX)/glance-base:$(GLANCE_BASE_VERSION) -f ./Dockerfile.glance-base .
FILE_REPO_VERSION = v0.3.3
FILE_REPO_VERSION = v0.5.2
file-repo:
$(DOCKER_BUILDX)/file-repo:$(FILE_REPO_VERSION) -f ./Dockerfile.file-repo .
@@ -64,3 +64,13 @@ host-image:
LBAGENT_BASE_VERSION = v0.0.3
lbagent-base:
$(DOCKER_BUILDX)/lbagent-base:$(LBAGENT_BASE_VERSION) -f ./Dockerfile.lbagent-base .
GUACD_VERSION=1.5.3
guacd:
docker buildx build --platform linux/arm64 --push \
-t registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-arm64 -f ./Dockerfile.guacd .
docker buildx build --platform linux/amd64 --push \
-t registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-amd64 -f ./Dockerfile.guacd .
docker buildx imagetools create -t registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION) \
registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-amd64 \
registry.cn-beijing.aliyuncs.com/yunionio/guacd:$(GUACD_VERSION)-arm64

View File

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

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

@@ -35,4 +35,5 @@ func init() {
cmd.Perform("set-users", &cloudid.CloudgroupUserOptions{})
cmd.Perform("public", &cloudid.CloudgroupPublicOptions{})
cmd.Perform("private", &cloudid.CloudgroupIdOptions{})
cmd.Get("saml", &cloudid.CloudgroupIdOptions{})
}

View File

@@ -1,29 +0,0 @@
// 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 cloudid
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/cloudid"
"yunion.io/x/onecloud/pkg/mcclient/options/cloudid"
)
func init() {
cmd := shell.NewResourceCmd(&modules.Cloudgroupcaches).WithKeyword("cloud-group-cache")
cmd.List(&cloudid.CloudgroupcacheListOptions{})
cmd.Show(&cloudid.CloudgroupcacheIdOption{})
cmd.Delete(&cloudid.CloudgroupcacheIdOption{})
cmd.Perform("syncstatus", &cloudid.CloudgroupcacheIdOption{})
}

View File

@@ -1,27 +0,0 @@
// 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 cloudid
import (
"yunion.io/x/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/cloudid"
"yunion.io/x/onecloud/pkg/mcclient/options/cloudid"
)
func init() {
cmd := shell.NewResourceCmd(&modules.Cloudpolicycaches).WithKeyword("cloud-policy-cache")
cmd.List(&cloudid.CloudpolicycacheListOptions{})
cmd.Show(&cloudid.CloudpolicycacheIdOptions{})
}

View File

@@ -25,5 +25,4 @@ func init() {
cmd.List(&cloudid.CloudroleListOptions{})
cmd.Delete(&cloudid.CloudroleIdOptions{})
cmd.Show(&cloudid.CloudroleIdOptions{})
cmd.Perform("purge", &cloudid.CloudroleIdOptions{})
}

View File

@@ -30,14 +30,13 @@ func init() {
cmd.Show(&cloudid.ClouduserIdOption{})
cmd.Custom(shell.CustomActionGet, "login-info", &cloudid.ClouduserIdOption{})
cmd.Delete(&cloudid.ClouduserIdOption{})
cmd.Perform("sync", &cloudid.ClouduserSyncOptions{})
cmd.Perform("syncstatus", &cloudid.ClouduserIdOption{})
cmd.Perform("attach-policy", &cloudid.ClouduserPolicyOptions{})
cmd.Perform("detach-policy", &cloudid.ClouduserPolicyOptions{})
cmd.Perform("change-owner", &cloudid.ClouduserChangeOwnerOptions{})
cmd.Perform("reset-password", &cloudid.ClouduserResetPasswordOptions{})
cmd.Perform("cloud-user-join-group", &cloudid.ClouduserGroupOptions{})
cmd.Perform("cloud-user-leave-group", &cloudid.ClouduserGroupOptions{})
cmd.Perform("join-group", &cloudid.ClouduserGroupOptions{})
cmd.Perform("leave-group", &cloudid.ClouduserGroupOptions{})
cmd.GetWithCustomShow("access-keys", func(result jsonutils.JSONObject) {
ret := modulebase.JSON2ListResult(result)
shell.PrintList(ret, nil)

View File

@@ -25,6 +25,6 @@ func init() {
cmd := shell.NewResourceCmd(&modules.AccessGroups).WithKeyword("access-group")
cmd.List(&compute.AccessGroupListOptions{})
cmd.Delete(&options.BaseIdOptions{})
cmd.Create(&options.BaseCreateOptions{})
cmd.Create(&compute.AccessGroupCreateOptions{})
cmd.Perform("syncstatus", &options.BaseIdOptions{})
}

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

@@ -26,6 +26,7 @@ func init() {
bsCmd.List(&compute.BackupStorageListOptions{})
bsCmd.Show(&compute.BackupStorageIdOptions{})
bsCmd.Create(&compute.BackupStorageCreateOptions{})
bsCmd.Update(&compute.BackupStorageUpdateOptions{})
bsCmd.Delete(&compute.BackupStorageIdOptions{})
bsCmd.Perform("public", &options.BasePublicOptions{})
bsCmd.Perform("private", &options.BaseIdOptions{})
@@ -49,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

@@ -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() {
@@ -41,6 +41,7 @@ func init() {
cmd.CreateWithKeyword("create-hcs", &options.SHCSAccountCreateOptions{})
cmd.CreateWithKeyword("create-hcsop", &options.SHcsOpCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-ucloud", &options.SUcloudCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-volcengine", &options.SVolcengineCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-zstack", &options.SZStackCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-s3", &options.SS3CloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-ceph", &options.SCephCloudAccountCreateOptions{})
@@ -59,6 +60,7 @@ func init() {
cmd.CreateWithKeyword("create-baidu", &options.SBaiduCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-cucloud", &options.SCucloudCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-qingcloud", &options.SQingCloudCloudAccountCreateOptions{})
cmd.CreateWithKeyword("create-oracle", &options.SOracleCloudAccountCreateOptions{})
cmd.UpdateWithKeyword("update-vmware", &options.SVMwareCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-aliyun", &options.SAliyunCloudAccountUpdateOptions{})
@@ -71,6 +73,7 @@ func init() {
cmd.UpdateWithKeyword("update-hcso", &options.SHCSOAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-hcs", &options.SHCSAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-ucloud", &options.SUcloudCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-volcengine", &options.SVolcengineCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-zstack", &options.SZStackCloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-s3", &options.SS3CloudAccountUpdateOptions{})
cmd.UpdateWithKeyword("update-ctyun", &options.SCtyunCloudAccountUpdateOptions{})
@@ -99,6 +102,7 @@ func init() {
cmd.PerformWithKeyword("update-credential-hcso", "update-credential", &options.SHCSOAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-hcs", "update-credential", &options.SHCSOAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-ucloud", "update-credential", &options.SUcloudCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-volcengine", "update-credential", &options.SVolcengineCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-zstack", "update-credential", &options.SZStackCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-s3", "update-credential", &options.SS3CloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("update-credential-ctyun", "update-credential", &options.SCtyunCloudAccountUpdateCredentialOptions{})
@@ -122,6 +126,7 @@ func init() {
cmd.PerformWithKeyword("test-connectivity-openstack", "test-connectivity", &options.SOpenStackCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-huawei", "test-connectivity", &options.SHuaweiCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-ucloud", "test-connectivity", &options.SUcloudCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-volcengine", "test-connectivity", &options.SVolcengineCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-zstack", "test-connectivity", &options.SZStackCloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-s3", "test-connectivity", &options.SS3CloudAccountUpdateCredentialOptions{})
cmd.PerformWithKeyword("test-connectivity-ctyun", "test-connectivity", &options.SCtyunCloudAccountUpdateCredentialOptions{})
@@ -145,5 +150,4 @@ func init() {
cmd.Get("change-owner-candidate-domains", &options.SCloudAccountIdOptions{})
cmd.Get("enrollment-accounts", &options.SCloudAccountIdOptions{})
cmd.Get("balance", &options.SCloudAccountIdOptions{})
cmd.Get("saml", &options.SCloudAccountIdOptions{})
}

View File

@@ -38,7 +38,7 @@ func init() {
Usable *bool `help:"List regions where networks are usable"`
UsableVpc *bool `help:"List regions where VPC are usable"`
Service string `help:"List regions which service has available skus" choices:"dbinstances|servers"`
Service string `help:"List regions which service has available skus" choices:"dbinstances|servers|elasticcaches"`
City string `help:"List regions in the specified city"`

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

@@ -42,6 +42,8 @@ import (
func init() {
cmd := shell.NewResourceCmd(&modules.Disks)
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
cmd.Perform("rebuild", &options.ResourceIdOptions{})
cmd.Perform("migrate", &compute_options.DiskMigrateOptions{})
type DiskListOptions struct {
options.BaseListOptions

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

@@ -23,6 +23,7 @@ import (
"yunion.io/x/log"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/util/httputils"
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/mcclient"
@@ -69,13 +70,26 @@ func init() {
cmd.Get("vnc", &options.BaseIdOptions{})
cmd.Get("app-options", &options.BaseIdOptions{})
cmd.Get("tap-config", &options.BaseIdOptions{})
cmd.GetWithCustomShow("nics", func(data jsonutils.JSONObject) {
results := printutils.ListResult{}
err := data.Unmarshal(&results)
if err == nil {
printutils.PrintJSONList(&results, []string{
"mac",
"vlan_id",
"interface",
"bridge",
"ip_addr",
"net",
"wire",
})
} else {
fmt.Println("error", err)
}
}, &options.BaseIdOptions{})
R(&options.BaseIdOptions{}, "host-logininfo", "Get SSH login information of a host", func(s *mcclient.ClientSession, args *options.BaseIdOptions) error {
srvid, e := modules.Hosts.GetId(s, args.ID, nil)
if e != nil {
return e
}
i, e := modules.Hosts.GetLoginInfo(s, srvid, nil)
i, e := modules.Hosts.PerformAction(s, args.ID, "login-info", nil)
if e != nil {
return e
}
@@ -168,8 +182,9 @@ func init() {
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!!!!"`
AccessMac string `help:"Change baremetal access MAC, CAUTION!!!!"`
Uuid string `help:"Change baremetal UUID, CAUTION!!!!"`
EnableNumaAllocate string `help:"Host enable numa allocate" choices:"True|False"`
IpmiUsername string `help:"IPMI user"`
IpmiPassword string `help:"IPMI password"`
@@ -220,6 +235,13 @@ func init() {
if len(args.Sn) > 0 {
params.Add(jsonutils.NewString(args.Sn), "sn")
}
if len(args.EnableNumaAllocate) > 0 {
enableNumaAllocate := false
if args.EnableNumaAllocate == "True" {
enableNumaAllocate = true
}
params.Add(jsonutils.NewBool(enableNumaAllocate), "enable_numa_allocate")
}
if params.Size() == 0 {
return fmt.Errorf("Not data to update")
}
@@ -576,11 +598,7 @@ func init() {
Port int `help:"SSH service port" default:"22"`
}
R(&HostSSHLoginOptions{}, "host-ssh", "SSH login of a host", func(s *mcclient.ClientSession, args *HostSSHLoginOptions) error {
srvid, e := modules.Hosts.GetId(s, args.ID, nil)
if e != nil {
return e
}
i, e := modules.Hosts.GetLoginInfo(s, srvid, nil)
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" {

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"
)
@@ -26,4 +31,71 @@ func init() {
cmd.Create(new(options.IsolatedDeviceModelCreateOptions))
cmd.Update(new(options.IsolatedDeviceModelUpdateOptions))
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,144 +15,21 @@
package compute
import (
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/cmd/climc/shell"
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"
)
func init() {
lbAclConvert := func(jd *jsonutils.JSONDict) error {
jaeso, err := jd.Get("acl_entries")
if err != nil {
return err
}
aclEntries := options.AclEntries{}
err = jaeso.Unmarshal(&aclEntries)
if err != nil {
return err
}
aclTextLines := aclEntries.String()
jd.Set("acl_entries", jsonutils.NewString(aclTextLines))
return nil
}
printLbAcl := func(jsonObj jsonutils.JSONObject) {
jd, ok := jsonObj.(*jsonutils.JSONDict)
if !ok {
printObject(jsonObj)
return
}
err := lbAclConvert(jd)
if err != nil {
printObject(jsonObj)
return
}
printObject(jd)
}
printLbAclList := func(list *printutils.ListResult, columns []string) {
data := list.Data
for _, jsonObj := range data {
jd := jsonObj.(*jsonutils.JSONDict)
err := lbAclConvert(jd)
if err != nil {
printList(list, columns)
return
}
}
printList(list, columns)
}
R(&options.LoadbalancerAclCreateOptions{}, "lbacl-create", "Create lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclCreateOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
lbacl, err := modules.LoadbalancerAcls.Create(s, params)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclGetOptions{}, "lbacl-show", "Show lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclGetOptions) error {
lbacl, err := modules.LoadbalancerAcls.Get(s, opts.ID, nil)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclListOptions{}, "lbacl-list", "List lbacls", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclListOptions) error {
params, err := baseoptions.ListStructToParams(opts)
if err != nil {
return err
}
result, err := modules.LoadbalancerAcls.List(s, params)
if err != nil {
return err
}
printLbAclList(result, modules.LoadbalancerAcls.GetColumns(s))
return nil
})
R(&options.LoadbalancerAclUpdateOptions{}, "lbacl-update", "Update lbacls", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclUpdateOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
lbacl, err := modules.LoadbalancerAcls.Update(s, opts.ID, params)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclDeleteOptions{}, "lbacl-purge", "Purge lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclDeleteOptions) error {
lbacl, err := modules.LoadbalancerAcls.PerformAction(s, opts.ID, "purge", nil)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclDeleteOptions{}, "lbacl-delete", "Show lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclDeleteOptions) error {
lbacl, err := modules.LoadbalancerAcls.Delete(s, opts.ID, nil)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclActionPatchOptions{}, "lbacl-patch", "Patch lbacls", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclActionPatchOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
lbacl, err := modules.LoadbalancerAcls.PerformAction(s, opts.ID, "patch", params)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclPublicOptions{}, "lbacl-public", "Public lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclPublicOptions) error {
params := jsonutils.Marshal(opts)
lbacl, err := modules.LoadbalancerAcls.PerformAction(s, opts.ID, "public", params)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclPrivateOptions{}, "lbacl-private", "Private lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclPrivateOptions) error {
lbacl, err := modules.LoadbalancerAcls.PerformAction(s, opts.ID, "private", nil)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
cmd := shell.NewResourceCmd(&modules.LoadbalancerAcls).WithKeyword("lbacl")
cmd.List(&options.LoadbalancerAclListOptions{})
cmd.Show(&options.LoadbalancerAclIdOptions{})
cmd.Create(&options.LoadbalancerAclCreateOptions{})
cmd.Delete(&options.LoadbalancerAclIdOptions{})
cmd.Update(&options.LoadbalancerAclUpdateOptions{})
cmd.Perform("purge", &options.LoadbalancerAclIdOptions{})
cmd.Perform("syncstatus", &options.LoadbalancerAclIdOptions{})
cmd.Perform("private", &options.LoadbalancerAclIdOptions{})
cmd.Perform("public", &options.LoadbalancerAclPublicOptions{})
cmd.Perform("patch", &options.LoadbalancerAclActionPatchOptions{})
}

View File

@@ -1,121 +0,0 @@
// 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/util/printutils"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
lbAclConvert := func(jd *jsonutils.JSONDict) error {
jaeso, err := jd.Get("acl_entries")
if err != nil {
return err
}
aclEntries := options.AclEntries{}
err = jaeso.Unmarshal(&aclEntries)
if err != nil {
return err
}
aclTextLines := aclEntries.String()
jd.Set("acl_entries", jsonutils.NewString(aclTextLines))
return nil
}
printLbAcl := func(jsonObj jsonutils.JSONObject) {
jd, ok := jsonObj.(*jsonutils.JSONDict)
if !ok {
printObject(jsonObj)
return
}
err := lbAclConvert(jd)
if err != nil {
printObject(jsonObj)
return
}
printObject(jd)
}
printLbAclList := func(list *printutils.ListResult, columns []string) {
data := list.Data
for _, jsonObj := range data {
jd := jsonObj.(*jsonutils.JSONDict)
err := lbAclConvert(jd)
if err != nil {
printList(list, columns)
return
}
}
printList(list, columns)
}
R(&options.LoadbalancerAclGetOptions{}, "lbacl-cache-show", "Show cached lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclGetOptions) error {
lbacl, err := modules.LoadbalancerCachedAcls.Get(s, opts.ID, nil)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.CachedLoadbalancerAclListOptions{}, "lbacl-cache-list", "List cached lbacls", func(s *mcclient.ClientSession, opts *options.CachedLoadbalancerAclListOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
result, err := modules.LoadbalancerCachedAcls.List(s, params)
if err != nil {
return err
}
printLbAclList(result, modules.LoadbalancerCachedAcls.GetColumns(s))
return nil
})
R(&options.LoadbalancerCachedAclCreateOptions{}, "lbacl-cache-create", "Create cached lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerCachedAclCreateOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
lbacl, err := modules.LoadbalancerCachedAcls.Create(s, params)
if err != nil {
return err
}
printObject(lbacl)
return nil
})
R(&options.LoadbalancerAclDeleteOptions{}, "lbacl-cache-purge", "Purge cached lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclDeleteOptions) error {
lbacl, err := modules.LoadbalancerCachedAcls.PerformAction(s, opts.ID, "purge", nil)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
R(&options.LoadbalancerAclDeleteOptions{}, "lbacl-cache-delete", "Delete cached lbacl", func(s *mcclient.ClientSession, opts *options.LoadbalancerAclDeleteOptions) error {
lbacl, err := modules.LoadbalancerCachedAcls.Delete(s, opts.ID, nil)
if err != nil {
return err
}
printLbAcl(lbacl)
return nil
})
}

View File

@@ -1,77 +0,0 @@
// 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/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
R(&options.LoadbalancerCertificateGetOptions{}, "lbcert-cache-show", "Show cached lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateGetOptions) error {
lbcert, err := modules.LoadbalancerCachedCertificates.Get(s, opts.ID, nil)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCachedCertificateListOptions{}, "lbcert-cache-list", "List cached lbcerts", func(s *mcclient.ClientSession, opts *options.LoadbalancerCachedCertificateListOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
result, err := modules.LoadbalancerCachedCertificates.List(s, params)
if err != nil {
return err
}
printList(result, modules.LoadbalancerCachedCertificates.GetColumns(s))
return nil
})
R(&options.LoadbalancerCachedCertificateCreateOptions{}, "lbcert-cache-create", "Create cached lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCachedCertificateCreateOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
lbcert, err := modules.LoadbalancerCachedCertificates.Create(s, params)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCertificateDeleteOptions{}, "lbcert-cache-delete", "Delete cached lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateDeleteOptions) error {
lbcert, err := modules.LoadbalancerCachedCertificates.Delete(s, opts.ID, nil)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCertificateDeleteOptions{}, "lbcert-cache-purge", "Purge cached lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateDeleteOptions) error {
lbcert, err := modules.LoadbalancerCachedCertificates.PerformAction(s, opts.ID, "purge", nil)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
}

View File

@@ -15,81 +15,19 @@
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"
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
R(&options.LoadbalancerCertificateCreateOptions{}, "lbcert-create", "Create lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateCreateOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
lbcert, err := modules.LoadbalancerCertificates.Create(s, params)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCertificateGetOptions{}, "lbcert-show", "Show lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateGetOptions) error {
lbcert, err := modules.LoadbalancerCertificates.Get(s, opts.ID, nil)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCertificateListOptions{}, "lbcert-list", "List lbcerts", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateListOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
result, err := modules.LoadbalancerCertificates.List(s, params)
if err != nil {
return err
}
printList(result, modules.LoadbalancerCertificates.GetColumns(s))
return nil
})
R(&options.LoadbalancerCertificateUpdateOptions{}, "lbcert-update", "Update lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateUpdateOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
lbcert, err := modules.LoadbalancerCertificates.Update(s, opts.ID, params)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCertificateDeleteOptions{}, "lbcert-delete", "Delete lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificateDeleteOptions) error {
lbcert, err := modules.LoadbalancerCertificates.Delete(s, opts.ID, nil)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCertificatePublicOptions{}, "lbcert-public", "Public lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificatePublicOptions) error {
params := jsonutils.Marshal(opts)
lbcert, err := modules.LoadbalancerCertificates.PerformAction(s, opts.ID, "public", params)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
R(&options.LoadbalancerCertificatePrivateOptions{}, "lbcert-private", "Private lbcert", func(s *mcclient.ClientSession, opts *options.LoadbalancerCertificatePrivateOptions) error {
lbcert, err := modules.LoadbalancerCertificates.PerformAction(s, opts.ID, "private", nil)
if err != nil {
return err
}
printObject(lbcert)
return nil
})
cmd := shell.NewResourceCmd(&modules.LoadbalancerCertificates).WithKeyword("lbcert")
cmd.Create(&options.LoadbalancerCertificateCreateOptions{})
cmd.Show(&options.LoadbalancerCertificateIdOptions{})
cmd.Delete(&options.LoadbalancerCertificateIdOptions{})
cmd.List(&options.LoadbalancerCertificateListOptions{})
cmd.Update(&options.LoadbalancerCertificateUpdateOptions{})
cmd.Perform("public", &options.LoadbalancerCertificatePublicOptions{})
cmd.Perform("private", &options.LoadbalancerCertificateIdOptions{})
cmd.Perform("syncstatus", &options.LoadbalancerCertificateIdOptions{})
}

View File

@@ -1,3 +1,17 @@
// 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 (

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() {
cmd := shell.NewResourceCmd(&modules.Networks).WithContextManager(&modules.Wires)
cmd.List(&compute_options.NetworkListOptions{})
cmd.Create(&compute_options.NetworkCreateOptions{})
cmd.Update(&compute_options.NetworkUpdateOptions{})
cmd.Show(&compute_options.NetworkIdOptions{})
cmd.Delete(&compute_options.NetworkIdOptions{})
@@ -43,6 +44,8 @@ func init() {
cmd.Get("change-owner-candidate-domains", &compute_options.NetworkIdOptions{})
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
cmd.Perform("switch-wire", &compute_options.NetworkSwitchWireOptions{})
cmd.Perform("sync-additional-wires", &compute_options.NetworkSyncAdditionalWiresOptions{})
cmd.Get("available-addresses", &compute_options.NetworkIdOptions{})
type NetworkShareOptions struct {
ID string `help:"ID or Name of the zone to show"`
@@ -60,65 +63,15 @@ func init() {
return nil
})
type NetworkCreateOptions struct {
WIRE string `help:"ID or Name of wire in which the network is created"`
NETWORK string `help:"Name of new network"`
STARTIP string `help:"Start of IPv4 address range"`
ENDIP string `help:"End of IPv4 address rnage"`
NETMASK int64 `help:"Length of network mask"`
Gateway string `help:"Default gateway"`
VlanId int64 `help:"Vlan ID" default:"1"`
IfnameHint string `help:"Hint for ifname generation"`
AllocPolicy string `help:"Address allocation policy" choices:"none|stepdown|stepup|random"`
ServerType string `help:"Server type" choices:"baremetal|container|eip|guest|ipmi|pxe"`
IsAutoAlloc *bool `help:"Auto allocation IP pool"`
BgpType string `help:"Internet service provider name" positional:"false"`
Desc string `help:"Description" metavar:"DESCRIPTION"`
}
R(&NetworkCreateOptions{}, "network-create", "Create a virtual network", func(s *mcclient.ClientSession, args *NetworkCreateOptions) error {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString(args.NETWORK), "name")
params.Add(jsonutils.NewString(args.STARTIP), "guest_ip_start")
params.Add(jsonutils.NewString(args.ENDIP), "guest_ip_end")
params.Add(jsonutils.NewInt(args.NETMASK), "guest_ip_mask")
if len(args.Gateway) > 0 {
params.Add(jsonutils.NewString(args.Gateway), "guest_gateway")
}
if args.VlanId > 0 {
params.Add(jsonutils.NewInt(args.VlanId), "vlan_id")
}
if len(args.ServerType) > 0 {
params.Add(jsonutils.NewString(args.ServerType), "server_type")
}
if len(args.IfnameHint) > 0 {
params.Add(jsonutils.NewString(args.IfnameHint), "ifname_hint")
}
if len(args.AllocPolicy) > 0 {
params.Add(jsonutils.NewString(args.AllocPolicy), "alloc_policy")
}
if len(args.Desc) > 0 {
params.Add(jsonutils.NewString(args.Desc), "description")
}
if len(args.BgpType) > 0 {
params.Add(jsonutils.NewString(args.BgpType), "bgp_type")
}
if args.IsAutoAlloc != nil {
params.Add(jsonutils.NewBool(*args.IsAutoAlloc), "is_auto_alloc")
}
net, e := modules.Networks.CreateInContext(s, params, &modules.Wires, args.WIRE)
if e != nil {
return e
}
printObject(net)
return nil
})
type NetworkCreateOptions2 struct {
Wire string `help:"ID or Name of wire in which the network is created"`
Vpc string `help:"ID or Name of vpc in which the network is created"`
Zone string `help:"ID or Name of zone in which the network is created"`
NAME string `help:"Name of new network"`
PREFIX string `help:"Start of IPv4 address range"`
Wire string `help:"ID or Name of wire in which the network is created"`
Vpc string `help:"ID or Name of vpc in which the network is created"`
Zone string `help:"ID or Name of zone in which the network is created"`
NAME string `help:"Name of new network"`
PREFIX string `help:"IPv4 prefix"`
Prefix6 string `help:"IPv6 prefix"`
BgpType string `help:"Internet service provider name" positional:"false"`
AssignPublicIp bool
Desc string `help:"Description" metavar:"DESCRIPTION"`
@@ -127,6 +80,11 @@ func init() {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString(args.NAME), "name")
params.Add(jsonutils.NewString(args.PREFIX), "guest_ip_prefix")
if len(args.Prefix6) > 0 {
params.Add(jsonutils.NewString(args.Prefix6), "guest_ip6_prefix")
}
params.Set("assign_public_ip", jsonutils.NewBool(args.AssignPublicIp))
if len(args.BgpType) > 0 {
params.Add(jsonutils.NewString(args.BgpType), "bgp_type")

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

@@ -1,30 +0,0 @@
// 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/onecloud/cmd/climc/shell"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
)
func init() {
cmd := shell.NewResourceCmd(&modules.SecGroupCaches).WithKeyword("secgroup-cache")
cmd.List(&compute.SecGroupCacheListOptions{})
cmd.Show(&compute.SecGroupCacheIdOptions{})
cmd.Delete(&compute.SecGroupCacheIdOptions{})
cmd.Perform("syncstatus", &compute.SecGroupCacheIdOptions{})
cmd.Get("references", &compute.SecGroupCacheIdOptions{})
}

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,15 +26,12 @@ 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("merge", &options.SecgroupMergeOptions{})
cmd.Perform("public", &options.SecgroupIdOptions{})
cmd.Perform("syncstatus", &options.SecgroupIdOptions{})
cmd.Perform("private", &options.SecgroupIdOptions{})
cmd.Perform("add-rule", &options.SecgroupsAddRuleOptions{})
cmd.Perform("cache-secgroup", &options.SecurityGroupCacheOptions{})
cmd.Perform("uncache-secgroup", &options.SecurityGroupUncacheSecurityGroup{})
cmd.Perform("purge", &options.SecgroupIdOptions{})
cmd.Perform("change-owner", &options.SecgroupChangeOwnerOptions{})
cmd.Perform("import-rules", &options.SecgroupImportRulesOptions{})
}

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()
}

View File

@@ -115,11 +115,17 @@ func init() {
cmd.Perform("qga-set-password", &options.ServerQgaSetPassword{})
cmd.Perform("qga-command", &options.ServerQgaCommand{})
cmd.Perform("qga-ping", &options.ServerQgaPing{})
cmd.Perform("qga-guest-info-task", &options.ServerQgaGuestInfoTask{})
cmd.Perform("qga-get-network", &options.ServerQgaGetNetwork{})
cmd.Perform("set-password", &options.ServerSetPasswordOptions{})
cmd.Perform("set-boot-index", &options.ServerSetBootIndexOptions{})
cmd.Perform("reset-nic-traffic-limit", &options.ServerNicTrafficLimitOptions{})
cmd.Perform("set-nic-traffic-limit", &options.ServerNicTrafficLimitOptions{})
cmd.Perform("add-sub-ips", &options.ServerAddSubIpsOptions{})
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.Get("vnc", new(options.ServerVncOptions))
cmd.Get("desc", new(options.ServerIdOptions))
@@ -133,6 +139,7 @@ func init() {
cmd.Get("cpuset-cores", new(options.ServerIdOptions))
cmd.Get("sshport", new(options.ServerIdOptions))
cmd.Get("qemu-info", new(options.ServerIdOptions))
cmd.Get("hardware-info", new(options.ServerIdOptions))
cmd.GetProperty(&options.ServerStatusStatisticsOptions{})
cmd.GetProperty(&options.ServerProjectStatisticsOptions{})
@@ -299,11 +306,6 @@ func init() {
})
R(&options.ServerLoginInfoOptions{}, "server-logininfo", "Get login info of a server", func(s *mcclient.ClientSession, opts *options.ServerLoginInfoOptions) error {
srvid, e := modules.Servers.GetId(s, opts.ID, nil)
if e != nil {
return e
}
params := jsonutils.NewDict()
if len(opts.Key) > 0 {
privateKey, e := ioutil.ReadFile(opts.Key)
@@ -313,7 +315,7 @@ func init() {
params.Add(jsonutils.NewString(string(privateKey)), "private_key")
}
i, e := modules.Servers.GetLoginInfo(s, srvid, params)
i, e := modules.Servers.PerformAction(s, opts.ID, "login-info", params)
if e != nil {
return e
}
@@ -865,7 +867,7 @@ func init() {
privateKey = string(key)
}
i, e := modules.Servers.GetLoginInfo(s, srvid, params)
i, e := modules.Servers.PerformAction(s, srvid, "login-info", params)
if e != nil {
return e
}

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

@@ -15,112 +15,18 @@
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 SnapshotPolicyListOptions struct {
options.BaseListOptions
OrderByBindDiskCount string
}
R(&SnapshotPolicyListOptions{}, "snapshot-policy-list", "List snapshot policy", func(s *mcclient.ClientSession, args *SnapshotPolicyListOptions) error {
params, err := options.ListStructToParams(args)
if err != nil {
return err
}
result, err := modules.SnapshotPoliciy.List(s, params)
if err != nil {
return err
}
printList(result, modules.SnapshotPoliciy.GetColumns(s))
return nil
})
type SnapshotPolicyDeleteOptions struct {
ID string `help:"Delete snapshot id"`
}
R(&SnapshotPolicyDeleteOptions{}, "snapshot-policy-delete", "Delete snapshot policy", func(s *mcclient.ClientSession, args *SnapshotPolicyDeleteOptions) error {
result, err := modules.SnapshotPoliciy.Delete(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type SnapshotPolicyCreateOptions struct {
NAME string
RetentionDays int `help:"snapshot retention days"`
RepeatWeekdays []int `help:"snapshot create days on week"`
TimePoints []int `help:"snapshot create time points on one day"`
}
R(&SnapshotPolicyCreateOptions{}, "snapshot-policy-create", "Create snapshot policy", func(s *mcclient.ClientSession, args *SnapshotPolicyCreateOptions) error {
params := jsonutils.Marshal(args).(*jsonutils.JSONDict)
snapshot, err := modules.SnapshotPoliciy.Create(s, params)
if err != nil {
return err
}
printObject(snapshot)
return nil
})
type SnapshotPolicyBindDisksOptions struct {
ID string `help:"ID"`
Disk []string `help:"ids of disk"`
}
R(&SnapshotPolicyBindDisksOptions{}, "snapshot-policy-bind-disk", "bind snapshotpolicy to disks",
func(s *mcclient.ClientSession, opts *SnapshotPolicyBindDisksOptions) error {
params, err := options.StructToParams(opts)
if err != nil {
return err
}
sp, err := modules.SnapshotPoliciy.PerformAction(s, opts.ID, "bind-disks", params)
if err != nil {
return err
}
printObject(sp)
return nil
})
R(&SnapshotPolicyBindDisksOptions{}, "snapshot-policy-unbind-disk", "bind snapshotpolicy to disks",
func(s *mcclient.ClientSession, opts *SnapshotPolicyBindDisksOptions) error {
params, err := options.StructToParams(opts)
if err != nil {
return err
}
sp, err := modules.SnapshotPoliciy.PerformAction(s, opts.ID, "unbind-disks", params)
if err != nil {
return err
}
printObject(sp)
return nil
})
type SnapshotPolicyCacheOptions struct {
ID string `help:"SnasphotPolicy ID"`
REGIONID string `help:"Region ID"`
PROVIDER string `help:"Provider ID"`
}
R(&SnapshotPolicyCacheOptions{}, "snapshot-policy-cache", "upload local snapshotpolicy to cloud",
func(s *mcclient.ClientSession, opts *SnapshotPolicyCacheOptions) error {
params, err := options.StructToParams(opts)
if err != nil {
return err
}
sp, err := modules.SnapshotPoliciy.PerformAction(s, opts.ID, "cache", params)
if err != nil {
return err
}
printObject(sp)
return nil
},
)
cmd := shell.NewResourceCmd(&modules.SnapshotPoliciy).WithKeyword("snapshot-policy")
cmd.List(&compute.SnapshotPolicyListOptions{})
cmd.Delete(&options.BaseIdOptions{})
cmd.Create(&compute.SnapshotPolicyCreateOptions{})
cmd.Perform("bind-disks", &compute.SnapshotPolicyDisksOptions{})
cmd.Perform("unbind-disks", &compute.SnapshotPolicyDisksOptions{})
cmd.Perform("syncstatus", &options.BaseIdOptions{})
}

View File

@@ -1,80 +0,0 @@
// 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/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
)
func init() {
type SSnapshotpolicyDiskListOfDiskOption struct {
DISKID string `help:"disk id"`
}
R(&SSnapshotpolicyDiskListOfDiskOption{}, "disk-snapshot-policy-list", "List snapshot policy attached",
func(s *mcclient.ClientSession, opts *SSnapshotpolicyDiskListOfDiskOption) error {
result, err := modules.SnapshotPolicyDisk.ListDescendent(s, opts.DISKID, jsonutils.NewDict())
if err != nil {
return err
}
printList(result, modules.SnapshotPolicyDisk.GetColumns(s))
return nil
},
)
type SSnapshotpolicyDiskListOfSnapshotpolicyOption struct {
SNAPSHOTPOLICYID string `help:"snapshot policy id"`
}
R(&SSnapshotpolicyDiskListOfSnapshotpolicyOption{}, "snapshot-policy-disk-list", "List disk attached",
func(s *mcclient.ClientSession, opts *SSnapshotpolicyDiskListOfSnapshotpolicyOption) error {
result, err := modules.SnapshotPolicyDisk.ListDescendent2(s, opts.SNAPSHOTPOLICYID, jsonutils.NewDict())
if err != nil {
return err
}
printList(result, modules.SnapshotPolicyDisk.GetColumns(s))
return nil
},
)
type SSnapshotpolicyDiskAttachOption struct {
DISKID string `help:"disk id"`
SNAPSHOTPOLICYID string `help:"snapshot policy id"`
}
R(&SSnapshotpolicyDiskAttachOption{}, "disk-snapshot-policy-attach", "attach snapshot policy to disk",
func(s *mcclient.ClientSession, opts *SSnapshotpolicyDiskAttachOption) error {
_, err := modules.SnapshotPolicyDisk.Attach(s, opts.DISKID, opts.SNAPSHOTPOLICYID, jsonutils.NewDict())
if err != nil {
return err
}
return nil
},
)
type SSnapshotpolicyDiskDetachOption struct {
DISKID string `help:"disk id"`
SNAPSHOTPOLICYID string `help:"snapshot policy id"`
}
R(&SSnapshotpolicyDiskDetachOption{}, "disk-snapshot-policy-detach", "detach snapshot policy to disk",
func(s *mcclient.ClientSession, opts *SSnapshotpolicyDiskDetachOption) error {
_, err := modules.SnapshotPolicyDisk.Detach(s, opts.DISKID, opts.SNAPSHOTPOLICYID, jsonutils.NewDict())
if err != nil {
return err
}
return nil
},
)
}

View File

@@ -102,7 +102,7 @@ func init() {
oldKeys = string(output)
}
pubKeys := &deployapi.SSHKeys{AdminPublicKey: pubKey}
newKeys := fsdriver.MergeAuthorizedKeys(oldKeys, pubKeys)
newKeys := fsdriver.MergeAuthorizedKeys(oldKeys, pubKeys, true)
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

@@ -15,92 +15,18 @@
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 StoragecacheListOptions struct {
options.BaseListOptions
CloudregionId string `help:"cloudregion id"`
}
R(&StoragecacheListOptions{}, "storage-cache-list", "List storage caches", func(s *mcclient.ClientSession, opts *StoragecacheListOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
}
result, err := modules.Storagecaches.List(s, params)
if err != nil {
return err
}
printList(result, modules.Storagecaches.GetColumns(s))
return nil
})
type StoragecacheShowptions struct {
ID string `help:"ID or Name of storagecache"`
}
R(&StoragecacheShowptions{}, "storage-cache-show", "Show details of storage caches", func(s *mcclient.ClientSession, args *StoragecacheShowptions) error {
result, err := modules.Storagecaches.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&StoragecacheShowptions{}, "storage-cache-delete", "Delete storage cache", func(s *mcclient.ClientSession, args *StoragecacheShowptions) error {
result, err := modules.Storagecaches.Delete(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type StorageCacheImageActionOptions struct {
ID string `help:"ID or name of storage"`
IMAGE string `help:"ID or name of image"`
Force bool `help:"Force refresh cache, even if the image exists in cache"`
Format string `help:"image format" choices:"iso|qcow2|vmdk|vhd"`
}
R(&StorageCacheImageActionOptions{}, "storagecache-cache-image", "Ask a storage cache to cache a image", func(s *mcclient.ClientSession, args *StorageCacheImageActionOptions) error {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString(args.IMAGE), "image")
if args.Force {
params.Add(jsonutils.JSONTrue, "is_force")
}
if len(args.Format) > 0 {
params.Add(jsonutils.NewString(args.Format), "format")
}
storage, err := modules.Storagecaches.PerformAction(s, args.ID, "cache-image", params)
if err != nil {
return err
}
printObject(storage)
return nil
})
type StorageUncacheImageActionOptions struct {
ID string `help:"ID or name of storage"`
IMAGE string `help:"ID or name of image"`
Force bool `help:"Force uncache, even if the image exists in cache is invalid"`
}
R(&StorageUncacheImageActionOptions{}, "storagecache-uncache-image", "Ask a storage cache to remove image from its cache", func(s *mcclient.ClientSession, args *StorageUncacheImageActionOptions) error {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString(args.IMAGE), "image")
if args.Force {
params.Add(jsonutils.JSONTrue, "is_force")
}
storage, err := modules.Storagecaches.PerformAction(s, args.ID, "uncache-image", params)
if err != nil {
return err
}
printObject(storage)
return nil
})
cmd := shell.NewResourceCmd(&modules.Storagecaches).WithKeyword("storage-cache")
cmd.List(&compute.StoragecacheListOptions{})
cmd.Show(&options.BaseIdOptions{})
cmd.Delete(&options.BaseIdOptions{})
cmd.Update(&options.BaseUpdateOptions{})
cmd.Perform("cache-image", &compute.StorageCacheImageActionOptions{})
cmd.Perform("uncache-image", &compute.StorageUncacheImageActionOptions{})
}

View File

@@ -45,6 +45,8 @@ func init() {
cmd.Perform("force-detach-host", &compute.StorageForceDetachHost{})
cmd.Perform("public", &options.BasePublicOptions{})
cmd.Perform("private", &options.BaseIdOptions{})
cmd.Get("hardware-info", &options.BaseIdOptions{})
cmd.Perform("set-hardware-info", &compute.StorageSetHardwareInfoOptions{})
type StorageCephRunOptions struct {
ID string `help:"ID or name of ceph storage"`

View File

@@ -15,19 +15,25 @@
package compute
import (
"yunion.io/x/jsonutils"
"fmt"
"time"
"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"
"yunion.io/x/onecloud/pkg/mcclient/modules/identity"
"yunion.io/x/onecloud/pkg/mcclient/modules/image"
"yunion.io/x/onecloud/pkg/mcclient/modules/k8s"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
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|ZStack|Google|Ctyun"`
Brand []string `help:"Brands" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|ZStack|DStack|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"`
Project string `help:"show usage of specified project"`
ProjectDomain string `help:"show usage of specified domain"`
@@ -58,7 +64,50 @@ func fetchHostTypeOptions(args *GeneralUsageOptions) *jsonutils.JSONDict {
return params
}
type HistoryUsageListOptions struct {
options.ExtraListOptions
StartDate time.Time
EndDate time.Time
Interval string `choices:"hour|day|month|year" default:"day"`
}
func (opts *HistoryUsageListOptions) Params() (jsonutils.JSONObject, error) {
if opts.StartDate.IsZero() || opts.EndDate.IsZero() {
opts.EndDate = time.Now()
switch opts.Interval {
case "hour":
opts.StartDate = time.Now().Add(time.Hour * -24)
case "day":
opts.StartDate = time.Now().AddDate(0, 0, -30)
case "month":
opts.StartDate = time.Now().AddDate(0, -12, 0)
case "year":
opts.StartDate = time.Now().AddDate(-3, 0, 0)
}
}
return jsonutils.Marshal(opts), nil
}
func (o *HistoryUsageListOptions) GetExportKeys() string {
return ""
}
func (o *HistoryUsageListOptions) GetId() string {
return ""
}
func init() {
cmd := shell.NewResourceCmd(modules.HistoryUsages)
cmd.GetWithCustomShow("list", func(data jsonutils.JSONObject) {
ret := map[string][]jsonutils.JSONObject{}
data.Unmarshal(&ret)
for k, d := range ret {
fmt.Println(k)
printutils.PrintJSONList(&printutils.ListResult{Data: d}, nil)
}
}, &HistoryUsageListOptions{})
R(&GeneralUsageOptions{}, "usage", "Show general usage", func(s *mcclient.ClientSession, args *GeneralUsageOptions) error {
params := fetchHostTypeOptions(args)
if args.Project != "" {

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

@@ -1,29 +0,0 @@
// 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/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() {
cmd := shell.NewResourceCmd(&modules.WafIPSetCaches)
cmd.List(&compute.WafIPSetCacheListOptions{})
cmd.Show(&options.BaseIdOptions{})
cmd.Delete(&options.BaseIdOptions{})
}

View File

@@ -32,6 +32,11 @@ import (
func init() {
handleResult := func(s *mcclient.ClientSession, opt o.WebConsoleOptions, obj jsonutils.JSONObject) error {
if obj.Contains("access_url") {
accessUrl, _ := obj.GetString("access_url")
fmt.Println("AccessURL:", accessUrl)
return nil
}
if opt.WebconsoleUrl == "" {
resp, err := identity.ServicesV3.GetSpecific(s, "common", "config", nil)
if err != nil {
@@ -117,7 +122,7 @@ func init() {
if err != nil {
return err
}
ret, err := webconsole.WebConsole.DoSshConnect(s, args.IP, params)
ret, err := webconsole.WebConsole.DoSshConnect(s, args.ID, params)
if err != nil {
return err
}
@@ -133,4 +138,14 @@ func init() {
handleResult(s, args.WebConsoleOptions, ret)
return nil
})
R(&o.WebConsoleServerRdpOptions{}, "webconsole-server-rdp", "Connect server remote graphic console by rdp", func(s *mcclient.ClientSession, args *o.WebConsoleServerRdpOptions) error {
ret, err := webconsole.WebConsole.DoServerRDPConnect(s, args.ID, jsonutils.Marshal(map[string]interface{}{"webconsole": args}))
if err != nil {
return err
}
handleResult(s, args.WebConsoleOptions, ret)
return nil
})
}

View File

@@ -229,7 +229,7 @@ type IPropertyOpt interface {
Property() string
}
func (cmd ResourceCmd) GetProperty(args IPropertyOpt) {
func (cmd ResourceCmd) GetPropertyWithShowFunc(args IPropertyOpt, showFunc func(jsonutils.JSONObject) error) {
man := cmd.manager
callback := func(s *mcclient.ClientSession, args IPropertyOpt) error {
params, err := args.Params()
@@ -240,6 +240,17 @@ func (cmd ResourceCmd) GetProperty(args IPropertyOpt) {
if err != nil {
return err
}
err = showFunc(ret)
if err != nil {
return err
}
return nil
}
cmd.RunWithDesc(args.Property(), fmt.Sprintf("Get property of a %s", man.GetKeyword()), args, callback)
}
func (cmd ResourceCmd) GetProperty(args IPropertyOpt) {
cmd.GetPropertyWithShowFunc(args, func(ret jsonutils.JSONObject) error {
if _, ok := ret.(*jsonutils.JSONArray); ok {
data, _ := ret.GetArray()
PrintList(&printutils.ListResult{
@@ -249,8 +260,7 @@ func (cmd ResourceCmd) GetProperty(args IPropertyOpt) {
PrintObject(ret)
}
return nil
}
cmd.RunWithDesc(args.Property(), fmt.Sprintf("Get property of a %s", man.GetKeyword()), args, callback)
})
}
func (cmd ResourceCmd) Show(args IShowOpt) {
@@ -657,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
@@ -679,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

@@ -31,4 +31,5 @@ func init() {
orgCmd.Delete(&identity_options.OrganizationIdOptions{})
orgCmd.Perform("add-level", &identity_options.OrganizationAddLevelOptions{})
orgCmd.Perform("add-node", &identity_options.OrganizationAddNodeOptions{})
orgCmd.Perform("clean", &identity_options.OrganizationIdOptions{})
}

View File

@@ -40,7 +40,7 @@ import (
"yunion.io/x/onecloud/pkg/util/tagutils"
)
func createPolicy(s *mcclient.ClientSession, name string, genName string, policy string, domain string, enabled bool, disabled bool, desc string, scope string, isSystem *bool, objectags, projecttags, domaintags tagutils.TTagSet) error {
func createPolicy(s *mcclient.ClientSession, name string, genName string, policy string, domain string, enabled bool, disabled bool, desc string, scope string, isSystem *bool, objectags, projecttags, domaintags tagutils.TTagSet, orgNodeId []string) error {
params := jsonutils.NewDict()
if len(genName) > 0 {
params.Add(jsonutils.NewString(genName), "generate_name")
@@ -83,6 +83,10 @@ func createPolicy(s *mcclient.ClientSession, name string, genName string, policy
params.Add(jsonutils.Marshal(domaintags), "domain_tags")
}
if len(orgNodeId) > 0 {
params.Add(jsonutils.NewStringArray(orgNodeId), "org_node_id")
}
result, err := modules.Policies.Create(s, params)
if err != nil {
return err
@@ -115,7 +119,12 @@ func createPolicyFromJson(s *mcclient.ClientSession, old jsonutils.JSONObject, a
domainTags = make(tagutils.TTagSet, 0)
old.Unmarshal(&domainTags, "domain_tags")
}
return createPolicy(s, argsName, genName, policy, argsDomain, enabled, !enabled, desc, scope, &isSystem, objectTags, projectTags, domainTags)
var nodeIds []string
if old.Contains("org_node_id") {
nodeIds = make([]string, 0)
old.Unmarshal(&nodeIds, "org_node_id")
}
return createPolicy(s, argsName, genName, policy, argsDomain, enabled, !enabled, desc, scope, &isSystem, objectTags, projectTags, domainTags, nodeIds)
}
func init() {
@@ -141,6 +150,8 @@ func init() {
ProjectTags string `help:"project tags"`
DomainTags string `help:"domain tags"`
ObjectTags string `help:"object tags"`
OrgNodeId []string `help:"node ids of organiazation tree node"`
}
R(&PolicyCreateOptions{}, "policy-create", "Create a new policy", func(s *mcclient.ClientSession, args *PolicyCreateOptions) error {
policyBytes, err := ioutil.ReadFile(args.FILE)
@@ -151,7 +162,7 @@ func init() {
objectTags := baseoptions.SplitTag(args.ObjectTags)
projectTags := baseoptions.SplitTag(args.ProjectTags)
domainTags := baseoptions.SplitTag(args.DomainTags)
return createPolicy(s, args.NAME, "", string(policyBytes), args.Domain, args.Enabled, args.Disabled, args.Desc, args.Scope, args.IsSystem, objectTags, projectTags, domainTags)
return createPolicy(s, args.NAME, "", string(policyBytes), args.Domain, args.Enabled, args.Disabled, args.Desc, args.Scope, args.IsSystem, objectTags, projectTags, domainTags, args.OrgNodeId)
})
type PolicyExportOptions struct {
@@ -213,6 +224,8 @@ func init() {
ProjectTags string `help:"project tags"`
DomainTags string `help:"domain tags"`
ObjectTags string `help:"object tags"`
OrgNodeId []string `help:"node ids of organiazation tree node"`
}
updateFunc := func(s *mcclient.ClientSession, args *PolicyPatchOptions) error {
policyId, err := modules.Policies.GetId(s, args.ID, nil)
@@ -262,6 +275,10 @@ func init() {
params.Add(jsonutils.NewString(args.TagsAction), "tag_update_policy")
}
if len(args.OrgNodeId) > 0 {
params.Add(jsonutils.NewStringArray(args.OrgNodeId), "org_node_id")
}
result, err := modules.Policies.Update(s, policyId, params)
if err != nil {
return err

View File

@@ -40,6 +40,7 @@ func init() {
cmd.GetProperty(&identity_options.ProjectGetPropertyTagValueTreeOptions{})
cmd.GetProperty(&identity_options.ProjectGetPropertyDomainTagValuePairOptions{})
cmd.GetProperty(&identity_options.ProjectGetPropertyDomainTagValueTreeOptions{})
cmd.PerformClass("clean", &identity_options.ProjectCleanOptions{})
type ProjectShowOptions struct {
ID string `help:"ID or Name of project"`
@@ -387,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

@@ -162,6 +162,18 @@ func init() {
return nil
})
type ServiceConfigShow2Options struct {
TYPE string `help:"service type"`
}
R(&ServiceConfigShow2Options{}, "service-config-show2", "Show configs of a service", func(s *mcclient.ClientSession, args *ServiceConfigShow2Options) error {
conf, err := modules.ServicesV3.GetConfig(s, args.TYPE)
if err != nil {
return err
}
fmt.Println(conf.PrettyString())
return nil
})
type ServiceConfigOptions struct {
SERVICE string `help:"service name or id"`
Config []string `help:"config options, can be a JSON, a YAML or a key=value pair, e.g:\n * JSON\n '{\"default\":{\"password_expiration_seconds\":300}}'\n * YAML\n default:\n password_expiration_seconds: 300\n * A key=value pair (under default section)\n password_expiration_seconds=300\n"`

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

@@ -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,12 +19,45 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/utils"
"yunion.io/x/pkg/util/sets"
"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 features = []string{
"onestack",
@@ -66,6 +99,8 @@ func init() {
"baidu",
"cucloud",
"qingcloud",
"volcengine",
"oraclecloud",
}
const (
@@ -97,10 +132,7 @@ func init() {
input := map[string]interface{}{
"name": GlobalSettings,
"service_id": YunionAgent,
"value": map[string]interface{}{
"setupKeys": []string{name},
"setupOneStackInitialized": true,
},
"value": NewGlobalSettingsValue([]string{name}, true),
}
params := jsonutils.Marshal(input)
if _, err := yunionconf.Parameters.Create(s, params); err != nil {
@@ -122,33 +154,20 @@ 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)
}
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

@@ -96,6 +96,7 @@ func init() {
apis.SERVICE_TYPE_OFFLINE_CLOUDMETA,
apis.SERVICE_TYPE_CLOUDMETA,
apis.SERVICE_TYPE_INFLUXDB,
apis.SERVICE_TYPE_VICTORIA_METRICS,
apis.SERVICE_TYPE_ETCD,
"torrent-tracker",
}) {

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

@@ -15,7 +15,10 @@
package monitor
import (
"yunion.io/x/pkg/errors"
"yunion.io/x/onecloud/cmd/climc/shell"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules/monitor"
options "yunion.io/x/onecloud/pkg/mcclient/options/monitor"
)
@@ -24,5 +27,18 @@ func init() {
cmd := shell.NewResourceCmd(monitor.UnifiedMonitorManager).SetPrefix("monitor")
cmd.Show(&options.SimpleQueryOptions{})
cmd.GetProperty(&options.MeasurementsQueryOptions{})
cmd.GetProperty(&options.DatabasesQueryOptions{})
// cmd.GetProperty(&options.DatabasesQueryOptions{})
R(new(options.MetricQueryOptions), "monitor-unifiedmonitor-query", "Perform metrics query", func(s *mcclient.ClientSession, opts *options.MetricQueryOptions) error {
input, err := opts.GetQueryInput()
if err != nil {
return err
}
resp, err := monitor.UnifiedMonitorManager.PerformQuery(s, input)
if err != nil {
return errors.Wrap(err, "PerformQuery")
}
printObject(resp)
return nil
})
}

View File

@@ -27,4 +27,5 @@ func init() {
cmd.Update(new(options.ConfigUpdateOptions))
cmd.Show(new(options.ConfigOptions))
cmd.Delete(new(options.ConfigOptions))
cmd.GetProperty(new(options.ConfigCapabilityOptions))
}

View File

@@ -138,4 +138,28 @@ func init() {
}
return nil
})
type NotificationContactInput struct {
Subject string
Body string
ContactType []string
ReceiverIds []string
RobotIds []string
RoleIds []string
}
R(&NotificationContactInput{}, "notify-contact-send", "Send notify event message", func(s *mcclient.ClientSession, args *NotificationContactInput) error {
params := api.NotificationManagerContactNotifyInput{
Subject: args.Subject,
Body: args.Body,
ReceiverIds: args.ReceiverIds,
ContactTypes: args.ContactType,
RobotIds: args.RobotIds,
RoleIds: args.RoleIds,
}
_, err := modules.Notification.PerformClassAction(s, "contact-notify", jsonutils.Marshal(params))
if err != nil {
return fmt.Errorf("unable to ContactNotify: %s", err)
}
return nil
})
}

View File

@@ -35,4 +35,5 @@ func init() {
cmd.PerformClass("intellij-get", new(options.ReceiverIntellijGetOptions))
cmd.PerformClass("get-types", new(options.ReceiverGetTypeOptions))
cmd.Perform("get-subscription", new(options.ReceiverGetSubscriptionOptions))
cmd.GetProperty(new(options.SReceiverRoleContactType))
}

View File

@@ -73,9 +73,10 @@ func init() {
}
type CycleTimer struct {
CycleCycleType string `help:"Cycle type for cycle timer" json:"cycle_type" choices:"day|week|month"`
CycleCycleType string `help:"Cycle type for cycle timer" json:"cycle_type" choices:"hour|day|week|month"`
CycleMinute int `help:"Minute of cycle timer" json:"minute"`
CycleHour int `help:"Hour of cycle timer" json:"hour"`
CycleCycleNum int `help:"Cycle count of cycle timer" json:"cycle_num"`
CycleWeekdays []int `help:"Weekdays for cycle timer" json:"weekdays"`
CycleMonthDays []int `help:"Month days for cycle timer" json:"month_days"`
CycleStartTime string `help:"Start time for cycle timer, format:'2006-01-02 15:04:05'" json:"start_time"`
@@ -123,6 +124,7 @@ func init() {
},
CycleTimer: apis.CycleTimerCreateInput{
CycleType: args.CycleCycleType,
CycleNum: args.CycleCycleNum,
Minute: args.CycleMinute,
Hour: args.CycleHour,
WeekDays: args.CycleWeekdays,

View File

@@ -0,0 +1,56 @@
// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package yunionconf
import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules/yunionconf"
)
func init() {
type BugReportStatusOptions struct {
}
R(&BugReportStatusOptions{}, "bug-report-status", "Show bug report status", func(s *mcclient.ClientSession, args *BugReportStatusOptions) error {
ret, err := yunionconf.BugReport.GetBugReportEnabled(s, nil)
if err != nil {
return err
}
printObject(ret)
return nil
})
type BugReportEnableOptions struct {
}
R(&BugReportEnableOptions{}, "bug-report-enable", "Enable bug report", func(s *mcclient.ClientSession, args *BugReportEnableOptions) error {
ret, err := yunionconf.BugReport.DoBugReportEnable(s, nil)
if err != nil {
return err
}
printObject(ret)
return nil
})
R(&BugReportEnableOptions{}, "bug-report-disable", "Disable bug report", func(s *mcclient.ClientSession, args *BugReportEnableOptions) error {
ret, err := yunionconf.BugReport.DoBugReportDisable(s, nil)
if err != nil {
return err
}
printObject(ret)
return nil
})
}

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

@@ -23,7 +23,9 @@ import (
"yunion.io/x/log"
api "yunion.io/x/onecloud/pkg/apis/cloudproxy"
common_app "yunion.io/x/onecloud/pkg/cloudcommon/app"
common_options "yunion.io/x/onecloud/pkg/cloudcommon/options"
"yunion.io/x/onecloud/pkg/cloudproxy/agent/worker"
"yunion.io/x/onecloud/pkg/cloudproxy/options"
"yunion.io/x/onecloud/pkg/cloudproxy/service"
@@ -33,42 +35,35 @@ import (
func main() {
defer atexit.Handle()
nop := true
wg := &sync.WaitGroup{}
ctx := context.Background()
ctx = context.WithValue(ctx, "wg", wg)
ctx, cancelFunc := context.WithCancel(ctx)
var (
opts = options.Get()
commonOpts = &opts.CommonOptions
opts = options.Get()
)
if opts.EnableAPIServer || opts.EnableProxyAgent {
common_app.InitAuth(commonOpts, func() {
log.Infof("Auth complete")
})
}
if opts.EnableAPIServer {
nop = false
wg.Add(1)
go func() {
defer wg.Done()
service.StartService()
}()
}
common_app.InitAuth(&opts.CommonOptions, func() {
log.Infof("Auth complete")
})
common_options.StartOptionManager(opts, opts.ConfigSyncPeriodSeconds, api.SERVICE_TYPE, api.SERVICE_VERSION, options.OnOptionsChange)
wg.Add(1)
go func() {
defer wg.Done()
service.StartService()
}()
if opts.EnableProxyAgent {
if opts.EnableAPIServer {
const d = "10m"
log.Infof("set proxy_agent_init_wait to %s", d)
opts.Options.ProxyAgentInitWait = d
}
const d = "10m"
log.Infof("set proxy_agent_init_wait to %s", d)
opts.Options.ProxyAgentInitWait = d
if err := opts.Options.ValidateThenInit(); err != nil {
log.Fatalf("proxy agent options validation: %v", err)
}
worker := worker.NewWorker(&opts.CommonOptions, &opts.Options)
nop = false
go func() {
worker.Start(ctx)
pid := os.Getpid()
@@ -79,17 +74,13 @@ func main() {
p.Signal(syscall.SIGTERM)
}()
}
if nop {
log.Warningln("nothing to do. Please check configuration")
} else {
go func() {
sigChan := make(chan os.Signal)
signal.Notify(sigChan, syscall.SIGINT)
signal.Notify(sigChan, syscall.SIGTERM)
sig := <-sigChan
log.Infof("signal received: %s", sig)
cancelFunc()
}()
wg.Wait()
}
go func() {
sigChan := make(chan os.Signal)
signal.Notify(sigChan, syscall.SIGINT)
signal.Notify(sigChan, syscall.SIGTERM)
sig := <-sigChan
log.Infof("signal received: %s", sig)
cancelFunc()
}()
wg.Wait()
}

View File

@@ -1,3 +1,17 @@
// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package main
import (

View File

@@ -1,3 +1,17 @@
// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package main
import (

View File

@@ -44,6 +44,14 @@ const (
// Failed, Offline, Degraded, Rebuilding, Out of Sync (OSY)
func main() {
logLevel := "debug"
logVerboseLevel := 5
log.SetVerboseLevel(int32(logVerboseLevel))
err := log.SetLogLevelByString(log.Logger(), logLevel)
if err != nil {
log.Fatalf("Set log level %q: %v", logLevel, err)
}
// creates the in-cluster config
config, err := rest.InClusterConfig()
if err != nil {

38
go.mod
View File

@@ -24,13 +24,15 @@ 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
github.com/gosuri/uitable v0.0.0-20160404203958-36ee7e946282
github.com/hako/durafmt v0.0.0-20180520121703-7b7ae1e72ead
github.com/hugozhu/godingtalk v1.0.6
github.com/influxdata/influxql v1.1.0
github.com/influxdata/promql/v2 v2.12.0
github.com/jaypipes/ghw v0.11.0
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c
github.com/lestrrat-go/jwx v1.0.2
@@ -45,6 +47,7 @@ require (
github.com/minio/minio-go v6.0.14+incompatible
github.com/pierrec/lz4/v4 v4.1.15
github.com/pkg/errors v0.9.1
github.com/pkg/sftp v1.13.6
github.com/pquerna/otp v1.2.0
github.com/satori/go.uuid v1.2.0
github.com/sergi/go-diff v1.2.0
@@ -52,9 +55,10 @@ require (
github.com/sevlyar/go-daemon v0.1.5
github.com/shirou/gopsutil v3.21.11+incompatible
github.com/shirou/gopsutil/v3 v3.22.10
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
@@ -62,6 +66,7 @@ require (
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74
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
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
@@ -83,20 +88,21 @@ require (
k8s.io/client-go v0.19.3
k8s.io/cluster-bootstrap v0.19.3
moul.io/http2curl/v2 v2.3.0
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230919091951-01618b65262e
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240701025412-01d62887063f
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32
yunion.io/x/jsonutils v1.0.1-0.20230613121553-0f3b41e2ef19
yunion.io/x/log v1.0.1-0.20230411060016-feb3f46ab361
yunion.io/x/jsonutils v1.0.1-0.20240203102553-4096f103b401
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900
yunion.io/x/pkg v1.0.1-0.20230912084455-1393f31347db
yunion.io/x/pkg v1.10.1-0.20240627035901-5608be5905f9
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e
yunion.io/x/sqlchemy v1.1.2-0.20230823191329-dc02ac3a547c
yunion.io/x/structarg v0.0.0-20220312084958-9c6c79c7d1c6
yunion.io/x/sqlchemy v1.1.3-0.20240624023332-82a08f917568
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
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
github.com/Azure/go-autorest/autorest v0.9.6 // indirect
@@ -132,6 +138,7 @@ require (
github.com/boltdb/bolt v1.3.1 // indirect
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/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect
github.com/coreos/go-semver v0.3.0 // indirect
@@ -164,7 +171,7 @@ require (
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.0-20180518054509-2e65f85255db // indirect
github.com/golang/snappy v0.0.1 // 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
@@ -182,6 +189,7 @@ require (
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
github.com/leodido/go-urn v1.2.0 // indirect
github.com/lestrrat-go/iter v0.0.0-20200422075355-fc1769541911 // indirect
github.com/lestrrat-go/pdebug v0.0.0-20200204225717-4d6bd78da58d // indirect
@@ -206,6 +214,7 @@ require (
github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492 // indirect
github.com/opentracing/opentracing-go v1.0.2 // indirect
github.com/openzipkin/zipkin-go-opentracing v0.3.4 // indirect
github.com/oracle/oci-go-sdk v24.3.0+incompatible // indirect
github.com/philhofer/fwd v1.0.0 // indirect
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
github.com/pkg/term v1.0.0 // indirect
@@ -220,11 +229,10 @@ require (
github.com/richardlehane/msoleps v1.0.3 // indirect
github.com/rivo/uniseg v0.2.0 // indirect
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
github.com/sirupsen/logrus v1.9.0 // indirect
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
@@ -232,7 +240,10 @@ 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
github.com/willf/bloom v2.0.3+incompatible // indirect
github.com/xuri/efp v0.0.0-20220603152613-6918739fd470 // indirect
@@ -244,7 +255,7 @@ require (
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/mod v0.9.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
@@ -253,7 +264,6 @@ require (
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // 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/check.v1 v1.0.0-20201130134442-10cb98267c6c // 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

78
go.sum
View File

@@ -36,6 +36,8 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX
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=
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=
@@ -81,6 +83,8 @@ github.com/LeeEirc/terminalparser v0.0.0-20220328021224-de16b7643ea4/go.mod h1:t
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=
github.com/OneOfOne/xxhash v1.2.2 h1:KMrpdQIwFcEqXDklaen+P1axHaj9BSKzvpUUfnHldSE=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
@@ -144,6 +148,7 @@ github.com/aokoli/goutils v1.0.1 h1:7fpzNGoJ3VA8qcrm++XEE1QUe0mIwNeLa02Nwq7RDkg=
github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
github.com/apache/thrift v0.13.0 h1:5hryIiq9gtn+MiLVn0wP37kb/uTeRZgN08WoCsAhIhI=
github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
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=
@@ -172,6 +177,8 @@ github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2/go.mod h1:PyRFw1Lt2w
github.com/c-bata/go-prompt v0.2.4 h1:7pKUJ3CUgzdu1HJeWhNRkpVyY/NnlJhM/7d6YgHNOao=
github.com/c-bata/go-prompt v0.2.4/go.mod h1:PqlttLXp0E7bZcoDW+dmzyKqFbmQTFoNzGSuW/AQRmo=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
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=
@@ -335,8 +342,9 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
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/snappy v0.0.0-20180518054509-2e65f85255db h1:woRePGFeVFfLKN/pOkfl+p/TAqKOfFu+7KPlMVpok/w=
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/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=
@@ -353,8 +361,8 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
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-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=
@@ -377,8 +385,9 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
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/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=
@@ -420,6 +429,10 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:
github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
github.com/influxdata/influxql v1.1.0 h1:sPsaumLFRPMwR5QtD3Up54HXpNND8Eu7G1vQFmi3quQ=
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=
@@ -457,6 +470,8 @@ github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c h1:N7A4JCA2G
github.com/koding/websocketproxy v0.0.0-20181220232114-7ed82d81a28c/go.mod h1:Nn5wlyECw3iJrzi0AhIWg+AJUb4PlRQVW4/3XHH1LZA=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
@@ -565,6 +580,8 @@ github.com/opentracing/opentracing-go v1.0.2 h1:3jA2P6O1F9UOrWVpwrIo17pu01KWvNWg
github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
github.com/openzipkin/zipkin-go-opentracing v0.3.4 h1:x/pBv/5VJNWkcHF1G9xqhug8Iw7X1y1zOMzDmyuvP2g=
github.com/openzipkin/zipkin-go-opentracing v0.3.4/go.mod h1:js2AbwmHW0YD9DwIw2JhQWmbfFi/UnWyYwdVhqbCDOE=
github.com/oracle/oci-go-sdk v24.3.0+incompatible h1:x4mcfb4agelf1O4/1/auGlZ1lr97jXRSSN5MxTgG/zU=
github.com/oracle/oci-go-sdk v24.3.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukwStZIg5F66tcBccjip/j888=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/philhofer/fwd v1.0.0 h1:UbZqGr5Y38ApvM/V/jEljVxwocdweyH+vmYvRPBnbqQ=
github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU=
@@ -578,6 +595,8 @@ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo=
github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
github.com/pkg/term v1.0.0 h1:raTSNJjic7X4n89hhPyLOsgRYczmr3MyezRierWCTa8=
github.com/pkg/term v1.0.0/go.mod h1:6rk0zrj6TXf8MR5fdVFsZMeGM2lxe3tUFLNBRlwX+dk=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -598,6 +617,7 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
@@ -620,8 +640,8 @@ 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/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=
@@ -664,8 +684,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=
@@ -674,8 +695,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=
@@ -700,6 +722,8 @@ github.com/tredoe/osutil/v2 v2.0.0-rc.16/go.mod h1:uLRVx/3pb7Y4RQhG8cQFbPE9ha5r8
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=
@@ -707,8 +731,12 @@ github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 h1:gga7acRE695AP
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
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=
github.com/volcengine/volc-sdk-golang v1.0.23/go.mod h1:AfG/PZRUkHJ9inETvbjNifTDgut25Wbkm2QoYBTbvyU=
github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
github.com/willf/bitset v1.1.9 h1:GBtFynGY9ZWZmEC9sWuu41/7VBXPFCOAbCbqTflOg9c=
github.com/willf/bitset v1.1.9/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
@@ -729,6 +757,8 @@ 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=
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=
@@ -760,6 +790,7 @@ golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
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/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -799,8 +830,9 @@ 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/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs=
golang.org/x/mod v0.9.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=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -842,6 +874,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
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=
@@ -929,12 +962,14 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.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/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=
@@ -946,6 +981,7 @@ 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.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=
@@ -1174,26 +1210,26 @@ 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.20230919091951-01618b65262e h1:ygcyhPHrwsuzJcCxDjZfGs9lU1UDstovyPLLte5oNpM=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20230919091951-01618b65262e/go.mod h1:2sgCN7nRPQL3woLfdgqLDd92vwAHqtlz3KKiHxC5BAw=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240701025412-01d62887063f h1:uSJUrgR373E8D+EI7CCBOCvTS0hJrYEGU2ythiJWZxI=
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240701025412-01d62887063f/go.mod h1:iLoBHVR2Eur/1WJSGcbZaEwpzh/iqXvbFCsX9/xt8CI=
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/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
yunion.io/x/jsonutils v1.0.1-0.20230613121553-0f3b41e2ef19 h1:mZh6vuo7oOiOtE5HF4667+XBNnn7uYpmGN5eIgCVMLk=
yunion.io/x/jsonutils v1.0.1-0.20230613121553-0f3b41e2ef19/go.mod h1:VK4Z93dgiKgAijcSqbMKmGaBMJuHulR16Hz4K015ZPo=
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/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.20230411060016-feb3f46ab361 h1:c5LyNdhbvBe/92pXs9jgXOU/S+RgYh/DHe538LpT/Mo=
yunion.io/x/log v1.0.1-0.20230411060016-feb3f46ab361/go.mod h1:LC6f/4FozL0iaAbnFt2eDX9jlsyo3WiOUPm03d7+U4U=
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91 h1:inY5o3LDa/zgsIZuPN0HmpzKIsu/lLgsBmMttuDPGj4=
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91/go.mod h1:LC6f/4FozL0iaAbnFt2eDX9jlsyo3WiOUPm03d7+U4U=
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900 h1:Hu/4ERvoWaN6aiFs4h4/yvVBMeVzb3eDaYTxkVx9Kdo=
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.0.1-0.20230912084455-1393f31347db h1:yxiqu3C7wDnL3M8Nn54QmBp+rRgT4k5+/E6kJPVPlco=
yunion.io/x/pkg v1.0.1-0.20230912084455-1393f31347db/go.mod h1:ksCJVQ+DwKrJ5QBEoU8pzrDFfDaZVAFH/iJ6yQCYxJk=
yunion.io/x/pkg v1.10.1-0.20240627035901-5608be5905f9 h1:eG7+VwaPllfRptUT0Rb+labNGeaLr/rKVgmNuvPzm84=
yunion.io/x/pkg v1.10.1-0.20240627035901-5608be5905f9/go.mod h1:+3nFKJt+O4xWboiDAv2EqvMM0rmm3tPJaOuQSHFkcY8=
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.2-0.20230823191329-dc02ac3a547c h1:9R2cTcmPBUno1P2YI321nztK1Jpu7QRBNbnHsI1uX1Q=
yunion.io/x/sqlchemy v1.1.2-0.20230823191329-dc02ac3a547c/go.mod h1:uuPVZEyEq3sWd5vf9VjGSy6lZzof22X87OEHw9sddJQ=
yunion.io/x/structarg v0.0.0-20220312084958-9c6c79c7d1c6 h1:WuWXhY3DvhdRTzWCJ/kwt3Ss6KIq7+KqJwb+esvNGwU=
yunion.io/x/structarg v0.0.0-20220312084958-9c6c79c7d1c6/go.mod h1:EP6NSv2C0zzqBDTKumv8hPWLb3XvgMZDHQRfyuOrQng=
yunion.io/x/sqlchemy v1.1.3-0.20240624023332-82a08f917568 h1:Ytz3G6z3/U+yzkM3KM/am1ndPWHB0nDlOLi9OJWduPc=
yunion.io/x/sqlchemy v1.1.3-0.20240624023332-82a08f917568/go.mod h1:5W8ghvJ4TNt/r2yDjjD3i4QsZgIiJX45dhRQBGWPHsQ=
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

File diff suppressed because it is too large Load Diff

View File

@@ -75,7 +75,7 @@ func init() {
func (man *SAnsiblePlaybookManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
pbV := NewAnsiblePlaybookValidator("playbook", userCred)
if err := pbV.Validate(data); err != nil {
if err := pbV.Validate(ctx, data); err != nil {
return nil, err
}
data.Set("status", jsonutils.NewString(api.AnsiblePlaybookStatusInit))
@@ -137,7 +137,7 @@ func (apb *SAnsiblePlaybook) ValidateUpdateCondition(ctx context.Context) error
func (apb *SAnsiblePlaybook) ValidateUpdateData(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
pbV := NewAnsiblePlaybookValidator("playbook", userCred)
if err := pbV.Validate(data); err != nil {
if err := pbV.Validate(ctx, data); err != nil {
return nil, err
}
apb.Playbook = pbV.Playbook // Update as a whole

View File

@@ -46,7 +46,7 @@ func NewAnsiblePlaybookValidator(key string, userCred mcclient.TokenCredential)
return v
}
func (v *ValidatorAnsiblePlaybook) Validate(data *jsonutils.JSONDict) error {
func (v *ValidatorAnsiblePlaybook) Validate(ctx context.Context, data *jsonutils.JSONDict) error {
pb := ansible.NewPlaybook()
err := data.Unmarshal(pb, "playbook")
if err != nil {

View File

@@ -656,8 +656,14 @@ func doLogout(ctx context.Context, w http.ResponseWriter, req *http.Request) {
token, _, _ := fetchAuthInfo(ctx, req)
if token != nil {
// valid login, log the event
user := logclient.NewSimpleObject(token.GetUserId(), token.GetUserName(), "user")
logclient.AddActionLogWithContext(ctx, user, logclient.ACT_LOGOUT, "", token, true)
err := auth.Remove(ctx, token.GetTokenString())
if err != nil {
log.Errorf("remove token fail %s", err)
return
} else {
user := logclient.NewSimpleObject(token.GetUserId(), token.GetUserName(), "user")
logclient.AddActionLogWithContext(ctx, user, logclient.ACT_LOGOUT, "", token, true)
}
}
clearAuthCookie(w)
appsrv.DisableClientCache(w)

View File

@@ -250,7 +250,12 @@ func (mh *MiscHandler) DoBatchHostRegister(ctx context.Context, w http.ResponseW
ips := []string{}
hosts := bytes.Buffer{}
for _, row := range rows[1:] {
for idx, row := range rows[1:] {
rowStr := strings.Join(row, "")
if len(rowStr) == 0 {
log.Warningf("empty row: %d, skipping it", idx+1)
continue
}
var e *httputils.JSONClientError
if i1 >= 0 && len(row[i1]) > 0 {
i1Ip := fmt.Sprintf("%d-%s", i1, row[i1])

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

@@ -83,7 +83,6 @@ func RpcHandler(ctx context.Context, w http.ResponseWriter, req *http.Request) {
return
}
token := AppContextToken(ctx)
// pathParams := appctx.AppContextParams(ctx)
s := auth.GetSession(ctx, token, FetchRegion(req))
funcname := verb + utils.Kebab2Camel(callName, "-")
mod, e := modulebase.GetModule(s, resType)
@@ -114,13 +113,14 @@ func RpcHandler(ctx context.Context, w http.ResponseWriter, req *http.Request) {
retobj := retValue[0]
reterr := retValue[1]
if reterr.IsNil() {
v, ok := retobj.Interface().(jsonutils.JSONObject)
addr := retobj.Interface()
v, ok := addr.(jsonutils.JSONObject)
if ok {
appsrv.SendJSON(w, v)
return
}
v2, ok := retobj.Interface().([]printutils.SubmitResult)
v2, ok := addr.([]printutils.SubmitResult)
if ok {
w.WriteHeader(207)
appsrv.SendJSON(w, modulebase.SubmitResults2JSON(v2))
@@ -128,13 +128,14 @@ func RpcHandler(ctx context.Context, w http.ResponseWriter, req *http.Request) {
}
httperrors.BadGatewayError(ctx, w, "recv invalid data")
} else {
ge, ok := reterr.Interface().(error)
if ok {
je := httperrors.NewGeneralError(ge)
httperrors.GeneralServerError(ctx, w, je)
return
}
httperrors.BadGatewayError(ctx, w, fmt.Sprintf("%s", reterr.Interface()))
return
}
errAddr := reterr.Interface()
ge, ok := errAddr.(error)
if ok {
je := httperrors.NewGeneralError(ge)
httperrors.GeneralServerError(ctx, w, je)
return
}
httperrors.BadGatewayError(ctx, w, fmt.Sprintf("%s", reterr.Interface()))
}

View File

@@ -16,12 +16,15 @@ package report
import (
"context"
"net"
"os"
"strings"
"time"
"yunion.io/x/jsonutils"
"yunion.io/x/log"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/gotypes"
"yunion.io/x/pkg/util/httputils"
"yunion.io/x/pkg/util/version"
"yunion.io/x/pkg/utils"
@@ -36,33 +39,93 @@ import (
)
type sReport struct {
GenerateName string
UUID string
Version string
OsDist string
OsVersion string
QemuVersion string
CpuArchitecture string
Brands string
HostCnt int64
KvmHostCnt int64
HostCpuCnt int64
HostMemSizeMb int64
BaremetalCnt int64
BaremetalCpuCnt int64
BaremetalMemSizeMb int64
ServerCnt int64
ServerCpuCnt int64
ServerMemSizeMb int64
DiskCnt int64
DiskSizeMb int64
BucketCnt int64
RdsCnt int64
MongoDBCnt int64
KafkaCnt int64
UserCnt int64
ProjectCnt int64
DomainCnt int64
GenerateName string
UUID string
Version string
OsDist string
OsVersion string
QemuVersion string
CpuArchitecture string
Brands string
HostCnt int64
KvmHostCnt int64
VmwareHostCnt int64
HostCpuCnt int64
HostMemSizeMb int64
BaremetalCnt int64
BaremetalCpuCnt int64
BaremetalMemSizeMb int64
BaremetalStorageSizeGb int64
ServerCnt int64
ServerCpuCnt int64
ServerMemSizeMb int64
KvmServerCnt int64
KvmServerCpuCnt int64
KvmServerMemSizeMb int64
DiskCnt int64
DiskSizeMb int64
BucketCnt int64
RdsCnt int64
MongoDBCnt int64
KafkaCnt int64
UserCnt int64
ProjectCnt int64
DomainCnt int64
RunningEnv string
}
const (
RUNNING_ENV_KUBERNETES = "kubernetes"
RUNNING_ENV_DOCKER_COMPOSE = "docker-compose"
RUNNING_ENV_UNKNOWN = "unknown"
)
func isInsideDockerCompose() bool {
// hostname likes: c1577eee2aed
DOCKER_HOSTNAME_LEN := 12
hostname := os.Getenv("HOSTNAME")
if len(hostname) != DOCKER_HOSTNAME_LEN {
return false
}
// resolv mysql and keystone host
resolvTimeout := 500 * time.Millisecond
ctx, cancel := context.WithTimeout(context.Background(), resolvTimeout)
defer cancel()
var r net.Resolver
hosts := []string{"mysql", "keystone", "region"}
for _, host := range hosts {
_, err := r.LookupIPAddr(ctx, host)
if err != nil {
return false
}
}
return true
}
func isInsideKubernetes() bool {
k8sHost := os.Getenv("KUBERNETES_SERVICE_HOST")
if len(k8sHost) == 0 {
return false
}
// check /var/run/secrets/kubernetes.io/serviceaccount/ directory
k8sSecDir := "/var/run/secrets/kubernetes.io/serviceaccount/"
if _, err := os.Stat(k8sSecDir); err != nil {
return false
}
return true
}
func getRunningEnv() string {
if isInsideKubernetes() {
return RUNNING_ENV_KUBERNETES
}
if isInsideDockerCompose() {
return RUNNING_ENV_DOCKER_COMPOSE
}
return RUNNING_ENV_UNKNOWN
}
func Report(ctx context.Context, userCred mcclient.TokenCredential, isStart bool) {
@@ -83,12 +146,37 @@ func Report(ctx context.Context, userCred mcclient.TokenCredential, isStart bool
resp, err := compute.Hosts.List(s, jsonutils.Marshal(map[string]interface{}{
"scope": "system",
"hypervisor": api.HYPERVISOR_KVM,
"limit": 20,
"limit": 1,
}))
if err != nil {
return nil, errors.Wrapf(err, "Hosts.List")
}
ret.KvmHostCnt = int64(resp.Total)
resp, err = compute.Hosts.List(s, jsonutils.Marshal(map[string]interface{}{
"scope": "system",
"hypervisor": api.HYPERVISOR_ESXI,
"limit": 1,
}))
if err != nil {
return nil, errors.Wrapf(err, "Hosts.List")
}
ret.VmwareHostCnt = int64(resp.Total)
resp, err = compute.Servers.List(s, jsonutils.Marshal(map[string]interface{}{
"scope": "system",
"hypervisor": api.HYPERVISOR_KVM,
"limit": 1,
}))
if err != nil {
return nil, errors.Wrapf(err, "Server.List")
}
ret.KvmServerCnt = int64(resp.Total)
if !gotypes.IsNil(resp.Totals) {
ret.KvmServerCpuCnt, _ = resp.Totals.Int("cpu_count")
ret.KvmServerMemSizeMb, _ = resp.Totals.Int("mem_mb")
}
osDists, osVersions, qemuVersions, archs := []string{}, []string{}, []string{}, []string{}
hosts := []api.HostDetails{}
jsonutils.Update(&hosts, resp.Data)
@@ -147,6 +235,10 @@ func Report(ctx context.Context, userCred mcclient.TokenCredential, isStart bool
ret.RdsCnt, _ = usage.Int("all.rds")
ret.MongoDBCnt, _ = usage.Int("all.mongodb")
ret.KafkaCnt, _ = usage.Int("all.kafka")
ret.BaremetalCnt, _ = usage.Int("baremetals")
ret.BaremetalCpuCnt, _ = usage.Int("baremetals.cpu")
ret.BaremetalMemSizeMb, _ = usage.Int("baremetals.memory")
ret.BaremetalStorageSizeGb, _ = usage.Int("baremetals.storage_gb")
usage, err = identity.IdentityUsages.GetUsage(s, system)
if err != nil {
return nil, errors.Wrapf(err, "IdentityUsages.GetUsage")
@@ -154,6 +246,7 @@ func Report(ctx context.Context, userCred mcclient.TokenCredential, isStart bool
ret.UserCnt, _ = usage.Int("users")
ret.DomainCnt, _ = usage.Int("domains")
ret.ProjectCnt, _ = usage.Int("projects")
ret.RunningEnv = getRunningEnv()
return ret, nil
}
rp, err := func() (*sReport, error) {

View File

@@ -17,7 +17,6 @@ package apihelper
import (
"context"
"fmt"
"time"
"yunion.io/x/jsonutils"
"yunion.io/x/log"
@@ -40,10 +39,6 @@ func (o GetDBModelsOptions) GetModelSet() IModelSet {
return o.modelOptions.ModelSet
}
func (o GetDBModelsOptions) GetMinUpdatedAt() time.Time {
return o.modelOptions.MinUpdatedAt
}
func (o GetDBModelsOptions) IncludeDetails() bool {
return o.modelOptions.IncludeDetails
}
@@ -78,10 +73,11 @@ func GetDBModels(opts *GetDBModelsOptions) error {
}
if !opts.InCludeOtherCloudEnv() {
listOptions.Filter = append(listOptions.Filter,
"manager_id.isnullorempty()", // len(manager_id) > 0 is for pubcloud objects
"external_id.isnullorempty()", // len(external_id) > 0 is for pubcloud objects
"manager_id.isnullorempty()", // len(manager_id) > 0 is for pubcloud objects
// "external_id.isnullorempty()", // len(external_id) > 0 is for pubcloud objects
)
listOptions.CloudEnv = "onpremise"
// listOptions.Provider = []string{"OneCloud"}
}
if inter, ok := opts.GetModelSet().(IModelSetFilter); ok {
filter := inter.ModelFilter()

View File

@@ -90,11 +90,11 @@ func SyncModelSets(mssOld IModelSets, s *mcclient.ClientSession, opt *Options) (
}
func syncModelSets(mssOld IModelSets, s *mcclient.ClientSession, opt *Options) (IModelSets, error) {
mss := mssOld.ModelSetList()
// mss := mssOld.ModelSetList()
mssNews := mssOld.NewEmpty()
for i, msNew := range mssNews.ModelSetList() {
for _, msNew := range mssNews.ModelSetList() {
var (
minUpdatedAt = ModelSetMaxUpdatedAt(mss[i])
// minUpdatedAt = ModelSetMaxUpdatedAt(mss[i])
includeEmulated = false
)
if optProvider, ok := msNew.(IModelSetEmulatedIncluder); ok {
@@ -103,7 +103,7 @@ func syncModelSets(mssOld IModelSets, s *mcclient.ClientSession, opt *Options) (
err := GetModels(&GetModelsOptions{
ClientSession: s,
ModelManager: msNew.ModelManager(),
MinUpdatedAt: minUpdatedAt,
// MinUpdatedAt: minUpdatedAt,
ModelSet: msNew,
BatchListSize: opt.ListBatchSize,
@@ -119,11 +119,9 @@ func syncModelSets(mssOld IModelSets, s *mcclient.ClientSession, opt *Options) (
}
func SyncDBModelSets(mssOld IModelSets, s *mcclient.ClientSession, opt *Options) (r ModelSetsUpdateResult, err error) {
mss := mssOld.ModelSetList()
mssNews := mssOld.NewEmpty()
for i, msNew := range mssNews.ModelSetList() {
for _, msNew := range mssNews.ModelSetList() {
var (
minUpdatedAt = ModelSetMaxUpdatedAt(mss[i])
includeEmulated = false
)
if optProvider, ok := msNew.(IModelSetEmulatedIncluder); ok {
@@ -133,7 +131,6 @@ func SyncDBModelSets(mssOld IModelSets, s *mcclient.ClientSession, opt *Options)
opts := &GetModelsOptions{
ClientSession: s,
ModelManager: msNew.ModelManager(),
MinUpdatedAt: minUpdatedAt,
ModelSet: msNew,
BatchListSize: opt.ListBatchSize,

View File

@@ -23,7 +23,6 @@ import (
"yunion.io/x/log"
"yunion.io/x/pkg/errors"
"yunion.io/x/pkg/util/printutils"
"yunion.io/x/pkg/util/timeutils"
"yunion.io/x/onecloud/pkg/cloudcommon/db"
mcclient "yunion.io/x/onecloud/pkg/mcclient"
@@ -41,7 +40,6 @@ type GetModelsOptions struct {
ModelSet IModelSet
BatchListSize int
MinUpdatedAt time.Time
IncludeDetails bool
IncludeEmulated bool
InCludeOtherCloudEnv bool
@@ -51,56 +49,12 @@ func GetModels(opts *GetModelsOptions) error {
man := opts.ModelManager
manKeyPlural := man.KeyString()
minUpdatedAt := opts.MinUpdatedAt
minUpdatedAtFilter := func(time time.Time) string {
// TODO add GE
tstr := timeutils.MysqlTime(time)
return fmt.Sprintf("updated_at.ge('%s')", tstr)
}
setNextListParams := func(params *jsonutils.JSONDict, lastUpdatedAt time.Time, lastResult *printutils.ListResult) (time.Time, error) {
minUpdatedAt := PseudoZeroTime
setNextListParams := func(params *jsonutils.JSONDict, lastResult *printutils.ListResult) error {
// NOTE: the updated_at field has second-level resolution.
// If they all have the same date...
var max time.Time
nmax := 0
n := len(lastResult.Data)
// find out the max updated_at date in the result set, and how
// many in the set has this date
for i := n - 1; i >= 0; i-- {
j := lastResult.Data[i]
updatedAt, err := j.GetTime("updated_at")
if err != nil {
log.Warningf("%s: updated_at field: %s, %s",
manKeyPlural, err, j.String())
continue
}
if max.IsZero() {
max = updatedAt
}
if max.Equal(updatedAt) {
nmax += 1
}
}
// error if we do not have valid date
if max.IsZero() {
return time.Time{}, fmt.Errorf("%s: cannot find next updated_at after '%q'",
manKeyPlural, lastUpdatedAt)
}
var newTime time.Time
var newOffset int
// if not all updated_at date are the same, then we can
// continue to the next age.
if nmax < n || (!max.Equal(lastUpdatedAt) && !max.Equal(PseudoZeroTime)) {
newTime = max
newOffset = nmax
} else {
newTime = lastUpdatedAt
newOffset = lastResult.Offset + n
}
params.Set("filter.0", jsonutils.NewString(minUpdatedAtFilter(newTime)))
params.Set("offset", jsonutils.NewInt(int64(newOffset)))
return newTime, nil
params.Set("offset", jsonutils.NewInt(int64(lastResult.Offset+len(lastResult.Data))))
return nil
}
listOptions := options.BaseListOptions{
@@ -109,13 +63,11 @@ func GetModels(opts *GetModelsOptions) error {
Scope: "system",
Details: options.Bool(opts.IncludeDetails),
ShowEmulated: options.Bool(opts.IncludeEmulated),
Filter: []string{
minUpdatedAtFilter(minUpdatedAt), // order matters, filter.0
},
OrderBy: []string{"updated_at"},
Order: "asc",
Limit: options.Int(opts.BatchListSize),
Offset: options.Int(0),
Filter: []string{},
OrderBy: []string{"updated_at", "created_at", "id"},
Order: "asc",
Limit: options.Int(opts.BatchListSize),
Offset: options.Int(0),
}
if !opts.InCludeOtherCloudEnv {
listOptions.Filter = append(listOptions.Filter,
@@ -123,6 +75,7 @@ func GetModels(opts *GetModelsOptions) error {
// "external_id.isnullorempty()", // len(external_id) > 0 is for pubcloud objects
)
listOptions.CloudEnv = "onpremise"
// listOptions.Provider = []string{"OneCloud"}
}
if inter, ok := opts.ModelSet.(IModelSetFilter); ok {
filter := inter.ModelFilter()
@@ -150,6 +103,7 @@ func GetModels(opts *GetModelsOptions) error {
entriesJson := []jsonutils.JSONObject{}
for {
var err error
log.Debugf("fetch %s with params %s", manKeyPlural, jsonutils.Marshal(params))
listResult, err := opts.ModelManager.List(opts.ClientSession, params)
if err != nil {
log.Errorf("%s: list failed with updated_at.gt('%s'): %s", manKeyPlural, minUpdatedAt, err)
@@ -159,7 +113,7 @@ func GetModels(opts *GetModelsOptions) error {
if listResult.Offset+len(listResult.Data) >= listResult.Total {
break
}
minUpdatedAt, err = setNextListParams(params, minUpdatedAt, listResult)
err = setNextListParams(params, listResult)
if err != nil {
return fmt.Errorf("%s: %s", manKeyPlural, err)
}
@@ -183,8 +137,7 @@ func InitializeModelSetFromJSON(set IModelSet, entriesJson []jsonutils.JSONObjec
manKeyPlural := set.ModelManager().KeyString()
for _, entryJson := range entriesJson {
m := set.NewModel()
var err error
err = entryJson.Unmarshal(m)
err := entryJson.Unmarshal(m)
if err != nil {
return fmt.Errorf("%s: unmarshal: %v: %s", manKeyPlural, err, entryJson.String())
}
@@ -284,5 +237,12 @@ func ModelSetApplyUpdates(aSet, bSet IModelSet) *ModelSetUpdateResult {
r.Changed = true
}
}
for _, kRv := range aSetRv.MapKeys() {
bMRv := bSetRv.MapIndex(kRv)
if !bMRv.IsValid() { // alread deleted
aSetRv.SetMapIndex(kRv, reflect.Value{})
r.Changed = true
}
}
return r
}

View File

@@ -16,21 +16,21 @@ package cloudid
type CloudaccountResourceListInput struct {
// 根据云账号名称过滤资源
Cloudaccount string `json:"cloudaccount"`
Cloudaccount string `json:"cloudaccount" yunion-deprecated-by:"cloudaccount_id"`
// 根据平台过滤
Provider []string `json:"provider"`
// swagger:ignore
CloudaccountId string `json:"cloudaccount_id" yunion-deprecated-by:"cloudaccount"`
CloudaccountId string `json:"cloudaccount_id"`
}
type CloudproviderResourceListInput struct {
// 根据云订阅过滤资源
Cloudprovider string `json:"cloudprovider"`
ManagerId string `json:"manager_id"`
// swagger:ignore
CloudproviderId string `json:"cloudprovider_id" yunion-deprecated-by:"cloudprovider"`
CloudproviderId string `json:"cloudprovider_id" yunion-deprecated-by:"manager_id"`
}
type CloudaccountResourceDetails struct {
@@ -47,5 +47,5 @@ type CloudaccountResourceDetails struct {
type CloudproviderResourceDetails struct {
// 云订阅名称
Cloudprovider string `json:"cloudprovider"`
Manager string `json:"manager"`
}

View File

@@ -16,17 +16,6 @@ package cloudid
import "yunion.io/x/onecloud/pkg/apis"
const (
CLOUD_GROUP_STATUS_AVAILABLE = "available" // 可用
CLOUD_GROUP_STATUS_DELETING = "deleting" // 删除中
CLOUD_GROUP_STATUS_DELETE_FAILED = "delete_failed" // 删除失败
CLOUD_GROUP_STATUS_SYNC_POLICIES = "sync_policies" // 同步权限中
CLOUD_GROUP_STATUS_SYNC_POLICIES_FAILED = "sync_policies_failed" // 同步权限失败
CLOUD_GROUP_STATUS_SYNC_USERS = "sync_users" // 同步用户中
CLOUD_GROUP_STATUS_SYNC_USERS_FAILED = "sync_users_failed" // 同步用户失败
CLOUD_GROUP_STATUS_SYNC_STATUS = "sync_status" // 同步状态
)
type CloudgroupJointResourceDetails struct {
apis.JointResourceBaseDetails
@@ -74,18 +63,14 @@ type CloudgroupPolicyListInput struct {
type CloudgroupListInput struct {
apis.StatusInfrasResourceBaseListInput
// 根据平台过滤
Provider []string `json:"provider"`
CloudaccountResourceListInput
CloudproviderResourceListInput
// 过滤子账号所在的权限组
ClouduserId string `json:"clouduser_id"`
// 根据权限过滤权限组
CloudpolicyId string `json:"cloudpolicy_id"`
// 是否可用
Usable *bool `json:"usable"`
}
type SCloudIdBaseResource struct {
@@ -95,14 +80,15 @@ type SCloudIdBaseResource struct {
type CloudgroupDetails struct {
apis.StatusInfrasResourceBaseDetails
CloudaccountResourceDetails
CloudproviderResourceDetails
SCloudgroup
// 公有云子用户数量
ClouduserCount int `json:"clouduser_count"`
// 权限数量
CloudpolicyCount int `json:"cloudpolicy_count"`
// 公有云权限组缓存数量
CloudgroupcacheCount int `json:"cloudgroupcache_count"`
Cloudpolicies []SCloudIdBaseResource `json:"cloudpolicies"`
Cloudusers []SCloudIdBaseResource `json:"cloudusers"`
@@ -111,8 +97,10 @@ type CloudgroupDetails struct {
type CloudgroupCreateInput struct {
apis.StatusInfrasResourceBaseCreateInput
// 平台, 目前支持Qcloud,Google,Azure,Aliyun,Huawei,Aws
Provider string `json:"provider"`
// 子账号Id
ManagerId string `json:"manager_id"`
// swagger: ignore
CloudaccountId string `json:"cloudaccount_id"`
// 权限Id列表, 权限provider必须和权限组provider一致
CloudpolicyIds []string `json:"cloudpolicy_ids"`
@@ -172,3 +160,32 @@ type CloudgroupResourceDetails struct {
// 公有云用户名称
Cloudgroup string `json:"cloudgroup"`
}
type SPolicy struct {
Name string
ExternalId string
PolicyType string
}
type GroupUser struct {
Name string
ExternalId string
}
type SGroup struct {
Id string
Name string
}
type GetCloudaccountSamlOutput struct {
// cloudaccount SAML ServiceProvider entity ID
EntityId string `json:"entity_id,allowempty"`
// redirect login URL for this cloudaccount
RedirectLoginUrl string `json:"redirect_login_url,allowempty"`
// redirect logout URL for this cloudaccount
RedirectLogoutUrl string `json:"redirect_logout_url,allowempty"`
// metadata URL for this cloudaccount
MetadataUrl string `json:"metadata_url,allowempty"`
// initial SAML SSO login URL for this cloudaccount
InitLoginUrl string `json:"init_login_url,allowempty"`
}

View File

@@ -1,48 +0,0 @@
// 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 cloudid
import "yunion.io/x/onecloud/pkg/apis"
const (
CLOUD_GROUP_CACHE_STATUS_AVAILABLE = "available" // 正常
CLOUD_GROUP_CACHE_STATUS_CREATING = "creating" // 创建中
CLOUD_GROUP_CACHE_STATUS_CREATE_FAILED = "create_failed" // 创建失败
CLOUD_GROUP_CACHE_STATUS_DELETING = "deleting" // 删除中
CLOUD_GROUP_CACHE_STATUS_DELETE_FAILED = "delete_failed" // 删除失败
CLOUD_GROUP_CACHE_STATUS_SYNC_STATUS = "sync_status" // 同步状态中
CLOUD_GROUP_CACHE_STATUS_UNKNOWN = "unknown" // 未知
)
type CloudgroupcacheListInput struct {
apis.StatusStandaloneResourceListInput
CloudaccountResourceListInput
// 根据权限组过滤
CloudgroupId string `json:"cloudgroup_id"`
}
type CloudgroupcacheCreateInput struct {
}
type CloudgroupcacheSyncstatusInput struct {
}
type CloudgroupcacheDetails struct {
apis.StatusStandaloneResourceDetails
SCloudgroupcache
CloudaccountResourceDetails
}

View File

@@ -22,19 +22,16 @@ import (
)
const (
CLOUD_POLICY_STATUS_AVAILABLE = cloudid.CLOUD_POLICY_STATUS_AVAILABLE
CLOUD_POLICY_STATUS_SYNCING = "syncing"
CLOUD_POLICY_STATUS_SYNC_FAILE = "sync_failed"
CLOUD_POLICY_STATUS_DELETING = "deleting"
CLOUD_POLICY_STATUS_DELETE_FAILED = "delete_failed"
CLOUD_POLICY_TYPE_SYSTEM = cloudid.CLOUD_POLICY_TYPE_SYSTEM
CLOUD_POLICY_TYPE_CUSTOM = cloudid.CLOUD_POLICY_TYPE_CUSTOM
CLOUD_POLICY_TYPE_SYSTEM = string(cloudid.PolicyTypeSystem)
CLOUD_POLICY_TYPE_CUSTOM = string(cloudid.PolicyTypeCustom)
)
type CloudpolicyListInput struct {
apis.StatusInfrasResourceBaseListInput
CloudaccountResourceListInput
CloudproviderResourceListInput
// 根据平台过滤
Provider []string `json:"provider"`
@@ -45,7 +42,7 @@ type CloudpolicyListInput struct {
CloudgroupId string `json:"cloudgroup_id"`
// 根据订阅过滤权限
CloudproviderId string `json:"cloudprovider_id"`
ManagerId string `json:"manager_id"`
// 权限类型
//
@@ -55,27 +52,30 @@ type CloudpolicyListInput struct {
// | system | 过滤系统权限 |
// | custom | 过滤自定义权限 |
PolicyType string `json:"policy_type"`
}
// 是否显示Locked的权限
Locked *bool `json:"locked"`
type PolicyUsage struct {
CloudgroupCount int
ClouduserCount int
}
type CloudpolicyDetails struct {
apis.StatusInfrasResourceBaseDetails
CloudaccountResourceDetails
CloudproviderResourceDetails
SCloudpolicy
PolicyUsage
}
type CloudpolicyCreateInput struct {
apis.StatusInfrasResourceBaseCreateInput
// 平台
Provider string `json:"provider"`
// default: custom
PolicyType string `json:"policy_type"`
CloudEnv string `json:"cloud_env"`
// 策略详情
Document *jsonutils.JSONDict `json:"document"`
}
@@ -113,14 +113,3 @@ type CloudpolicyRevokeGroupInput struct {
// 权限组Id
CloudgroupId string `json:"cloudgroup_id"`
}
type CloudpolicyLockInput struct {
}
type CloudpolicyUnLockInput struct {
}
type CloudpolicyCacheInput struct {
// 云订阅Id
ManagerId string `json:"manager_id"`
}

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