Compare commits

..

908 Commits

Author SHA1 Message Date
Zexi Li
5466a88ac3 Merge pull request #9115 from yousong/automated-cherry-pick-of-#9109-upstream-release-3.1
Automated cherry pick of #9109: fix(host): make sure it won't match vpc guests by accident
2020-12-01 20:22:08 +08:00
Yousong Zhou
3a23f64836 fix(host): make sure it won't match vpc guests by accident 2020-12-01 15:34:34 +08:00
yunion-ci-robot
cc48edc32d Merge pull request #8530 from rainzm/automated-cherry-pick-of-#8525-upstream-release-3.1
Automated cherry pick of #8525: fix(esxi): no callback in uploadHandler
2020-10-28 00:57:41 +08:00
rainzm
a77dfee4d3 fix(esxi): filter vmdk item in lease.info 2020-10-27 21:35:55 +08:00
rainzm
e70c1244e3 fix(esxi): use correct device index
1. Sort devices via their Key.
2. There is no relationship between vdisk index and vnics length.
2020-10-27 21:35:55 +08:00
rainzm
bc8ee81afd fix(esxi): no callback in uploadHandler 2020-10-27 21:35:55 +08:00
yunion-ci-robot
be3d7a4fbb Merge pull request #8318 from rainzm/automated-cherry-pick-of-#8314-upstream-release-3.1
Automated cherry pick of #8314: feat(esxi): do not specify portkey in NewVNIC
2020-10-16 10:40:34 +08:00
rainzm
3f8c5fd12c feat(esxi): do not specify portkey in NewVNIC 2020-10-16 08:25:36 +08:00
Zexi Li
d06343b6cf Merge pull request #8262 from rainzm/automated-cherry-pick-of-#8232-upstream-release-3.1
Automated cherry pick of #8232: fix(esxi): search template from whole vCenter
2020-10-13 10:08:24 +08:00
rainzm
19335a1fbf fix(esxi): use system disk of template only when cloning vm
1. Create a driver if necessary.
2. After cloning the virtual machine, remove all data disks.
3. Create new data disks.
2020-10-12 17:51:33 +08:00
rainzm
999f6e2dba fix(esxi): search template from whole vCenter 2020-10-12 17:51:33 +08:00
yunion-ci-robot
6f94124e81 Merge pull request #8198 from rainzm/automated-cherry-pick-of-#8194-upstream-release-3.1
Automated cherry pick of #8194: fix(esxi): check nil value when NewVirtualMachine
2020-10-10 19:05:16 +08:00
yunion-ci-robot
fa457b0461 Merge pull request #8222 from yousong/automated-cherry-pick-of-#8218-upstream-release-3.1
Automated cherry pick of #8218: webconsole: ssh: each argument on its own line
2020-10-10 15:34:49 +08:00
Yousong Zhou
38778aae06 webconsole: ssh: add keyboard-interactive as an option
For ESXi 6.0

  Authentications that can continue: publickey,keyboard-interactive
2020-10-10 14:48:17 +08:00
Yousong Zhou
38cd512516 webconsole: ssh: each argument on its own line 2020-10-10 14:47:41 +08:00
yunion-ci-robot
23cc211deb Merge pull request #8187 from yousong/automated-cherry-pick-of-#8183-upstream-release-3.1
Automated cherry pick of #8183: vpcagent: ovn: increase dhcp lease, renew, rebind time
2020-10-10 11:56:13 +08:00
rainzm
48d764dd36 fix(esxi): check nil value when NewVirtualMachine 2020-10-10 11:39:06 +08:00
Yousong Zhou
d708af7781 vpcagent: ovn: increase dhcp lease, renew, rebind time 2020-10-09 10:29:12 +08:00
Zexi Li
4e806ed185 Merge pull request #7965 from zexi/automated-cherry-pick-of-#7961-upstream-release-3.1
Automated cherry pick of #7961: region: fix network schedtag not cleanup when network deleted
2020-09-18 12:45:13 +08:00
Zexi Li
0ac14febc8 region: fix network schedtag not cleanup when network deleted 2020-09-18 10:40:32 +08:00
Zexi Li
a1b2a4ddcd Merge pull request #7874 from rainzm/automated-cherry-pick-of-#7870-upstream-release-3.1
Automated cherry pick of #7870: fix(esxiagent): add HostDelayTaskWorkerCount
2020-09-11 20:56:12 +08:00
Zexi Li
f405cb921b Merge pull request #7866 from wanyaoqi/automated-cherry-pick-of-#7836-upstream-release-3.1
Automated cherry pick of #7836: host: fix rbd storage cache iso image
2020-09-11 20:54:01 +08:00
rainzm
112026b778 fix(esxiagent): add HostDelayTaskWorkerCount
之前,HostDelayWorker 是通过 hostutils.InitWorkerManager 来初始化,
worker的数量依赖于options.HostOptions.DefaultRequestWorkerCount, 因为
这个options没有经过初始化,所以就是0,导致worker count的数量变为1。

现在增加了 HostDelayTaskWorkerCount 来管理这个count,默认值为8。
2020-09-11 17:23:46 +08:00
wanyaoqi
b230711ded host: fix rbd storage cache iso image 2020-09-10 23:21:36 +08:00
yunion-ci-robot
716d4d2172 Merge pull request #7849 from rainzm/automated-cherry-pick-of-#7845-upstream-release-3.1
Automated cherry pick of #7845: Feat & Fix & Refactor for ESXi
2020-09-10 09:41:57 +08:00
rainzm
182777e677 fix(region): add RequestSyncstatusOnHost for SESXiGuestDriver
esxi 平台 Guest 进行 syncstatus 和其他平台有所区别,Vcenter 可能会更改
 VM 所在的 Host,所以在 Host 上寻找 VM 可能会出现 ErrNotFound。此时,应该
主动去整个 datacenter 中寻找 VM,然后更改 Host,进行同步。
2020-09-09 22:01:35 +08:00
rainzm
2fdb1430a4 fix(esxi): fetch templatevm from datacenter before clone vm
这里应该和image_cache那里保持一直,对template的获取应该从datacenter
中获取,而不是host。
2020-09-09 22:00:02 +08:00
rainzm
bb1f439a04 refactor(esxi): replace GetTemplateVMById with FetchTemplateVMById
FetchTemplateVMById 更好,因为它更轻量,更快。
2020-09-09 22:00:02 +08:00
rainzm
595be9b0ed feat(esxicli): better vm operator
现在,可以通过Datacenter来获取vm,不一定要指定HostIp,
Datacenter和HostIp必须指定一个。
2020-09-09 22:00:02 +08:00
rainzm
1f9b473521 feat(esxi): support fetchVM form datacenter 2020-09-09 22:00:02 +08:00
rainzm
6f47aa8ad3 refactor(esxi): fetchVms and fetchHardwareInfo
1. fetchHardwareInfo 只有一种error,原因是moVM的某些字段为nil,这种情况下,完全可以打印日志直接返回。
2. fetchVms 现在只返回[]*SVirtualMachine, 进一步的过滤(是不是template)交给调用者。
2020-09-09 22:00:02 +08:00
yunion-ci-robot
c2c981c40f Merge pull request #7826 from rainzm/automated-cherry-pick-of-#7821-upstream-release-3.1
Automated cherry pick of #7821: fix(esxiagent): return image extid not id
2020-09-08 20:23:54 +08:00
rainzm
3eefd80d84 fix(esxiagent): return image extid not id
调用 disk/image_cache 接口的Task StorageCacheImageTask 会根据回调
回来数据中的 image_id,来设置 storagecachedimage 中的 externalid,
所以这里的 image_id 应该是 externalid。
2020-09-08 15:35:00 +08:00
wanyaoqi
97d438e4a4 fix get storage capacity on init' (#7690) 2020-09-01 01:01:36 +08:00
Zexi Li
3aec0a110e Merge pull request #7626 from wanyaoqi/automated-cherry-pick-of-#7623-upstream-release-3.1
Automated cherry pick of #7623: fix gpfs check mountpoint
2020-08-25 17:41:28 +08:00
wanyaoqi
ab5245bd29 fix gpfs check mountpoint 2020-08-25 15:53:25 +08:00
Zexi Li
3eb4a31c46 Merge pull request #7578 from rainzm/automated-cherry-pick-of-#7575-upstream-release-3.1
Automated cherry pick of #7575: fix: GetIImages correctly without 'image_cache' dir
2020-08-16 23:42:03 +08:00
rainzm
e5a5439ac9 fix: GetIImages correctly without 'image_cache' dir
After creating vms, there is no dir named 'image_cache' exists in
storage of esxi. So handle this case to not affecte the synchronization of the
VMware Template.
2020-08-14 20:37:30 +08:00
Zexi Li
41e2a194e4 Merge pull request #7538 from wanyaoqi/automated-cherry-pick-of-#7530-upstream-release-3.1
Automated cherry pick of #7530: fix mount xfs
2020-08-11 11:16:53 +08:00
wanyaoqi
64c801dbca fix mount xfs 2020-08-10 20:06:19 +08:00
Zexi Li
34fa66230b Merge pull request #7450 from tb365/automated-cherry-pick-of-#7447-upstream-release-3.1
Automated cherry pick of #7447: aws elb listener&rule name too long fix
2020-08-02 10:08:50 +08:00
wanyaoqi
1fd2b2eebc fix cache non lvm disks (#7462) 2020-08-01 21:13:02 +08:00
tangbin
72e99816a2 aws elb listener&rule name too long fix 2020-08-01 11:13:20 +08:00
Zexi Li
1cf5771607 Merge pull request #7424 from rainzm/automated-cherry-pick-of-#7416-upstream-release-3.1
Automated cherry pick of #7416: fix(region): Don't allow address conflicts under vpc
2020-08-01 11:06:03 +08:00
rainzm
91efa6f48d fix(region): Don't allow address conflicts under vpc
Except for default vpc, vpc and wire have a one-to-one correspondence.
So prohibiting the address conflict of wire does not avoid
the address conflict of default vpc.
2020-08-01 10:53:09 +08:00
Zexi Li
400a87221d Merge pull request #7444 from wanyaoqi/automated-cherry-pick-of-#7441-upstream-release-3.1
Automated cherry pick of #7441: fix deploy admin auth key
2020-08-01 00:07:09 +08:00
wanyaoqi
7e6fb93a3e fix deploy admin auth key 2020-07-31 23:27:05 +08:00
Zexi Li
f91526f96f baremetal: fix hpssactl split last LV size out of limit (#7429) 2020-07-31 22:38:00 +08:00
Zexi Li
e5cabfb3a8 Merge pull request #7422 from ioito/automated-cherry-pick-of-#7417-upstream-release-3.1
Automated cherry pick of #7417: fix: avoid lost backend params
2020-07-31 18:08:07 +08:00
Zexi Li
68a31e0d14 Merge pull request #7410 from ioito/automated-cherry-pick-of-#7405-upstream-release-3.1
Automated cherry pick of #7405: fix: avoid account sync deadlock
2020-07-31 18:05:34 +08:00
Qu Xuan
be45e166cb fix: avoid lost backend params 2020-07-31 17:20:23 +08:00
Qu Xuan
0bc58b8fe3 fix: avoid account sync deadlock 2020-07-31 16:41:00 +08:00
Zexi Li
7d92493e3a Merge pull request #7362 from ioito/automated-cherry-pick-of-#7359-upstream-release-3.1
Automated cherry pick of #7359: fix: 修复vm绑定重复安全组
2020-07-28 20:56:11 +08:00
Qu Xuan
4663ecddf4 fix: 修复vm绑定重复安全组 2020-07-28 18:16:47 +08:00
Zexi Li
0bd0782268 Merge pull request #7341 from rainzm/automated-cherry-pick-of-#7338-upstream-release-3.1
Automated cherry pick of #7338: fix(region): Remove default secgroup for esxi guest
2020-07-27 19:49:28 +08:00
rainzm
c5b719b21f fix(region): Remove default secgroup for esxi guest
1. InitializeData remove all secgroup_id of esxi guest from database
2. Set input.SecgroupId as empty for guest whose GetMaxSecurityGroupCount
return 0
2020-07-27 14:54:47 +08:00
yunion-ci-robot
7b470196ef Merge pull request #7306 from wanyaoqi/automated-cherry-pick-of-#7302-upstream-release-3.1
Automated cherry pick of #7302: fix clone clean pending usage
2020-07-24 22:51:41 +08:00
wanyaoqi
f1113a9c23 fix clone clean pending usage 2020-07-23 18:39:22 +08:00
Zexi Li
b56e49de6d Merge pull request #7297 from wanyaoqi/automated-cherry-pick-of-#7294-upstream-release-3.1
Automated cherry pick of #7294: fix snapshot clean pending usage
2020-07-23 13:48:18 +08:00
wanyaoqi
3f270e8bd3 fix snapshot clean pending usage 2020-07-23 11:40:58 +08:00
Zexi Li
de893473d6 Merge pull request #7289 from tb365/automated-cherry-pick-of-#7286-upstream-release-3.1
Automated cherry pick of #7286: apigateway host imports data validate
2020-07-22 21:44:22 +08:00
tangbin
6809f62d95 format fix 2020-07-22 18:05:07 +08:00
tangbin
c345991bd4 fix empty else 2020-07-22 18:05:07 +08:00
tangbin
e5f95e0986 fix host import 2020-07-22 18:05:07 +08:00
tangbin
e8bd33751c fix huawei delete resource 2020-07-22 18:05:07 +08:00
tangbin
727801bff5 fix huawei elb disable healthcheck 2020-07-22 18:05:07 +08:00
tangbin
3e56e4acb8 lb sync project fix 2020-07-22 18:05:06 +08:00
tangbin
f79abe479a add more log 2020-07-22 17:51:27 +08:00
tangbin
ec8e58554a apigateway host imports data validate 2020-07-22 17:51:27 +08:00
Zexi Li
5a731d8176 Merge pull request #7284 from rainzm/automated-cherry-pick-of-#7281-upstream-release-3.1
Automated cherry pick of #7281: fix(esxi): Select correct unitNumber for ide control when creating disk
2020-07-22 13:52:33 +08:00
Rain Zheng
4515843a2c fix(esxi): Select correct unitNumber for ide control when creating disk 2020-07-21 20:49:48 +08:00
Zexi Li
8c1b1f80b6 Merge pull request #7261 from tb365/automated-cherry-pick-of-#7237-upstream-release-3.1
Automated cherry pick of #7237: huawei eip delete fix
2020-07-20 20:47:30 +08:00
tangbin
4b95ec7f0d huawei eip delete fix 2020-07-20 10:51:16 +08:00
Zexi Li
8ddf04e3dd Merge pull request #7219 from rainzm/automated-cherry-pick-of-#7216-upstream-release-3.1
Automated cherry pick of #7216: fix: prefetch image error when create guest with vmware template
2020-07-17 10:16:48 +08:00
rainzm
3b268ad6fb fix: prefetch image error when create guest with vmware template
1. Only need the corresponding vmware template in the vcenter where the host is
located.
2. Chose storagecache which cacheimage is ready before deploying.
2020-07-16 21:47:40 +08:00
yunion-ci-robot
21e7ea198c Merge pull request #7207 from zexi/automated-cherry-pick-of-#7201-upstream-release-3.1
Automated cherry pick of #7201: webconsole: fix old session make new session closed
2020-07-16 20:21:20 +08:00
Zexi Li
c09676aa9f webconsole: fix old session make new session closed 2020-07-16 18:51:09 +08:00
Zexi Li
ee69f560ae Merge pull request #7180 from ioito/automated-cherry-pick-of-#7177-upstream-release-3.1
Automated cherry pick of #7177: fix: 避免华为云安全组规则删除失败
2020-07-16 10:16:41 +08:00
Qu Xuan
92e75e87c9 fix: 避免华为云安全组规则删除失败 2020-07-15 17:14:45 +08:00
Zexi Li
4b2869cf4e Merge pull request #7161 from yousong/automated-cherry-pick-of-#7158-upstream-release-3.1
Automated cherry pick of #7158: iproute2: address: make Exact idempotent
2020-07-15 10:34:45 +08:00
Yousong Zhou
249abee22d iproute2: address: make Exact idempotent
Idempotence against address not available for Exact is not a bad idea if
we look at the name of that func

This should accomodate the race condition where keepalived will remove
vips should the primary address used for vrrp comms is removed, causing
later addr del to fail with "cannot assign requested address"
2020-07-14 16:42:49 +08:00
Zexi Li
27e99f8b51 Merge pull request #7150 from rainzm/automated-cherry-pick-of-#7147-upstream-release-3.1
Automated cherry pick of #7147: fix: mo.VirtualMachine's Config maybe nil
2020-07-14 11:34:52 +08:00
rainzm
5d1d963990 fix: mo.VirtualMachine's Config maybe nil 2020-07-13 23:30:04 +08:00
Zexi Li
9c27a7cafd Merge pull request #7128 from wanyaoqi/bugfix/wyq/cherry-pick-7125
Manual cherry pick of #7125: fix rbd set storage info
2020-07-10 20:16:07 +08:00
wanyaoqi
433aa54055 fix rbd set storage info 2020-07-10 14:56:15 +08:00
Zexi Li
cf8377ea72 Merge pull request #7109 from wanyaoqi/automated-cherry-pick-of-#7106-upstream-release-3.1
Automated cherry pick of #7106: fix set storage info bind mount
2020-07-09 21:19:44 +08:00
wanyaoqi
0a71acd86b fix set storage info bind mount 2020-07-09 14:56:37 +08:00
Zexi Li
780418219c Merge pull request #7064 from rainzm/automated-cherry-pick-of-#7061-upstream-release-3.1
Automated cherry pick of #7061: Update docker image onecloud-base and its references
2020-07-07 11:12:56 +08:00
rainzm
e5487fab4f Update docker image onecloud-base and its references 2020-07-06 21:06:20 +08:00
Zexi Li
546ec09848 Merge pull request #7039 from swordqiu/automated-cherry-pick-of-#7036-upstream-release-3.1
Automated cherry pick of #7036: fix: cloud account sync may block
2020-07-04 12:09:33 +08:00
Qiu Jian
1e49aa17b7 fix: cloud account sync may block 2020-07-04 10:25:41 +08:00
Zexi Li
bf3b06cd8c Merge pull request #7014 from wanyaoqi/automated-cherry-pick-of-#7006-upstream-release-3.1
Automated cherry pick of #7006: bind mount nfs storage path
2020-07-02 17:35:48 +08:00
wanyaoqi
289a6bcf4b bind mount nfs storage path 2020-07-02 17:34:59 +08:00
Zexi Li
46b80f79a3 Merge pull request #6993 from rainzm/automated-cherry-pick-of-#6990-upstream-release-3.1
Automated cherry pick of #6990: fix the bug introduced in #6643
2020-07-01 19:26:36 +08:00
rainzm
0438db6938 fix the bug introduced in #6643 2020-07-01 16:55:58 +08:00
Zexi Li
4d9b6e1599 Merge pull request #6978 from wanyaoqi/automated-cherry-pick-of-#6975-upstream-release-3.1
Automated cherry pick of #6975: fix deploy backup server order
2020-06-30 23:09:17 +08:00
wanyaoqi
2f4401a407 fix deploy backup server order 2020-06-30 22:04:30 +08:00
Zexi Li
e9855290e8 Merge pull request #6939 from swordqiu/automated-cherry-pick-of-#6936-upstream-release-3.1
Automated cherry pick of #6936: fix: sort quota list result by usage rate
2020-06-23 23:28:09 +08:00
Qiu Jian
228d45b7a1 fix: sort quota list result by usage rate 2020-06-23 22:24:42 +08:00
Zexi Li
f977e44885 Merge pull request #6924 from swordqiu/automated-cherry-pick-of-#6921-upstream-release-3.1
Automated cherry pick of #6921: fix: simplify forbidden user login message
2020-06-23 21:26:06 +08:00
Qiu Jian
ecfe897c2e fix: simplify forbidden user login message 2020-06-23 17:48:21 +08:00
yunion-ci-robot
7370f1ecf1 Merge pull request #6909 from wanyaoqi/automated-cherry-pick-of-#6906-upstream-release-3.1
Automated cherry pick of #6906: disable dhclient
2020-06-23 10:31:59 +08:00
wanyaoqi
bd0d22e7e4 disable dhclient 2020-06-22 21:31:33 +08:00
Zexi Li
997141525d Merge pull request #6896 from yousong/automated-cherry-pick-of-#6893-upstream-release-3.1
Automated cherry pick of #6893: cloudcommon: app: cosmetic change
2020-06-22 09:15:46 +08:00
Yousong Zhou
477d5845d5 cloudcommon: policy: fix interval and oneshot sync
Reduce CPU utilization caused by queued time.AfterFunc calls
2020-06-21 18:34:21 +08:00
Yousong Zhou
fb886c6f25 cloudcommon: app: cosmetic change 2020-06-21 18:34:21 +08:00
yunion-ci-robot
44a9f29c94 Merge pull request #6887 from swordqiu/automated-cherry-pick-of-#6885-upstream-release-3.1
Automated cherry pick of #6885: fix: wrong cloud provider status when sync disconnected cloud account
2020-06-19 09:49:08 +08:00
Qiu Jian
20473f6544 fix: wrong cloud provider status when sync disconnected cloud account 2020-06-19 01:22:58 +08:00
yunion-ci-robot
af19d59bc8 Merge pull request #6866 from yousong/automated-cherry-pick-of-#6859-upstream-release-3.1
Automated cherry pick of #6859: cloudaccounts: one sync task in queue per cloudaccount
2020-06-18 23:19:04 +08:00
Zexi Li
11a66c13c3 Merge pull request #6873 from ioito/automated-cherry-pick-of-#6871-upstream-release-3.1
Automated cherry pick of #6871: fix: 避免同步删除失败
2020-06-18 19:05:46 +08:00
Qu Xuan
ea4535cbbb fix: 避免同步删除失败 2020-06-18 17:21:39 +08:00
Yousong Zhou
2ab2c5b0dd cloudaccounts: one sync task in queue per cloudaccount 2020-06-18 17:12:33 +08:00
yunion-ci-robot
b1bd51d040 Merge pull request #6876 from tb365/automated-cherry-pick-of-#6875-upstream-release-3.1
Automated cherry pick of #6875: replace err with errors.cause
2020-06-18 15:16:03 +08:00
tangbin
e4c1d4181b replace err with errors.cause 2020-06-18 14:29:49 +08:00
Zexi Li
356fa8d02d Merge pull request #6863 from tb365/automated-cherry-pick-of-#6861-upstream-release-3.1
Automated cherry pick of #6861: shuzhou to suzhou
2020-06-17 18:50:55 +08:00
Zexi Li
dd32b0aacc Merge pull request #6842 from zexi/automated-cherry-pick-of-#6839-upstream-release-3.1
Automated cherry pick of #6839: scheduler: fix memory over committed
2020-06-17 18:49:40 +08:00
tangbin
4c00f92502 shuzhou to suzhou 2020-06-17 15:55:36 +08:00
Zexi Li
d4a714af2c Merge pull request #6856 from yousong/automated-cherry-pick-of-#6837-upstream-release-3.1
Automated cherry pick of #6837: appsrv: ring: release ring content on pop
2020-06-17 11:24:40 +08:00
Yousong Zhou
da702c8284 appsrv: rework TestRing 2020-06-17 10:53:42 +08:00
Yousong Zhou
649eac69ef appsrv: ring: release ring content on pop 2020-06-17 10:53:42 +08:00
Zexi Li
0cf01d2f0a Merge pull request #6851 from swordqiu/automated-cherry-pick-of-#6849-upstream-release-3.1
Automated cherry pick of #6849: fix: disable policy rule compaction
2020-06-17 10:29:07 +08:00
Qiu Jian
120ed1f695 fix: policy allow if one of the matching rules is allow 2020-06-16 23:11:35 +08:00
Qiu Jian
4acc7a580f fix: disable policy rule compaction 2020-06-16 23:11:34 +08:00
Zexi Li
facbe5433a Merge pull request #6846 from wanyaoqi/automated-cherry-pick-of-#6844-upstream-release-3.1
Automated cherry pick of #6844: fix cpu usage metrics
2020-06-16 21:00:51 +08:00
wanyaoqi
96088d3465 fix cpu usage metrics 2020-06-16 20:44:40 +08:00
Zexi Li
4b98425f0c Merge pull request #6826 from wanyaoqi/automated-cherry-pick-of-#6824-upstream-release-3.1
Automated cherry pick of #6824: fix windows install regedit record
2020-06-16 20:12:53 +08:00
Zexi Li
4ac3f8e4fa scheduler: fix memory over committed 2020-06-16 19:17:35 +08:00
wanyaoqi
d48b88ec83 fix windows install regedit record 2020-06-15 10:58:41 +08:00
Zexi Li
c0659c1453 Merge pull request #6819 from yousong/automated-cherry-pick-of-#6817-upstream-release-3.1
Automated cherry pick of #6817: guestnetworks: use math/rand instead of crypto/rand
2020-06-12 10:09:26 +08:00
Yousong Zhou
99598a4804 guestnetworks: reduce odds of collision seeded by epoch seconds 2020-06-11 21:22:52 +08:00
Yousong Zhou
651f2c3f9c guestnetworks: use math/rand instead of crypto/rand 2020-06-11 21:22:52 +08:00
Zexi Li
fa12b95e21 Merge pull request #6813 from ioito/automated-cherry-pick-of-#6810-upstream-release-3.1
Automated cherry pick of #6810: fix: 避免openstack磁盘和存储窜位
2020-06-11 17:52:22 +08:00
Zexi Li
93a659c81c Merge pull request #6805 from zexi/automated-cherry-pick-of-#6803-upstream-release-3.1
Automated cherry pick of #6803: webconsole: fix version and others handler not handle
2020-06-11 17:50:10 +08:00
Qu Xuan
9def31ddfe fix: 避免openstack磁盘和存储窜位 2020-06-11 14:14:19 +08:00
Zexi Li
f98104ad20 Merge pull request #6799 from wanyaoqi/automated-cherry-pick-of-#6797-upstream-release-3.1
Automated cherry pick of #6797: fix host list servers filter
2020-06-10 17:05:59 +08:00
Zexi Li
6b0be1317e webconsole: fix version and others handler not handle 2020-06-10 17:02:24 +08:00
wanyaoqi
5a9e9f66e4 fix host list servers filter 2020-06-10 14:08:26 +08:00
Zexi Li
b5d4885007 Merge pull request #6732 from ioito/automated-cherry-pick-of-#6663-upstream-release-3.1
Automated cherry pick of #6663: fix: 优化安全组同步逻辑
2020-06-10 11:28:55 +08:00
Zexi Li
58ba106c61 Merge pull request #6788 from rainzm/automated-cherry-pick-of-#6786-upstream-release-3.1
Automated cherry pick of #6786: fix: Hanle the error of vdisk.GetIStorage in syncCloudDisk
2020-06-10 11:28:06 +08:00
Zexi Li
fb406e91c4 Merge pull request #6781 from ioito/automated-cherry-pick-of-#6779-upstream-release-3.1
Automated cherry pick of #6779: fix: 更正华为云操作成功判断
2020-06-10 10:46:07 +08:00
Zexi Li
462ff5c2d8 Merge pull request #6784 from rainzm/automated-cherry-pick-of-#6782-upstream-release-3.1
Automated cherry pick of #6782: fix: Add '/version' handler for notify
2020-06-10 10:18:56 +08:00
Zexi Li
a1fbc8455b Merge pull request #6793 from swordqiu/automated-cherry-pick-of-#6791-upstream-release-3.1
Automated cherry pick of #6791: fix: policy-explain not working properly
2020-06-10 09:53:04 +08:00
Qiu Jian
50e28166ef fix: policy-explain not working properly 2020-06-09 22:29:44 +08:00
rainzm
92381b0213 fix: Hanle the error of vdisk.GetIStorage in syncCloudDisk 2020-06-09 19:50:30 +08:00
rainzm
65b1fbae34 fix: Add '/version' handler for notify 2020-06-09 18:55:34 +08:00
Qu Xuan
918265ea49 fix: 更正华为云操作成功判断 2020-06-09 18:21:25 +08:00
yunion-ci-robot
5591bbec4e Merge pull request #6771 from zexi/automated-cherry-pick-of-#6769-upstream-release-3.1
Automated cherry pick of #6769: region: retry set influxdb policy until completed
2020-06-08 21:11:09 +08:00
Zexi Li
8f0ac8e19b region: retry set influxdb policy until completed 2020-06-08 19:08:50 +08:00
Qu Xuan
307fb3a116 fix: 优化安全组同步逻辑 2020-06-08 14:12:57 +08:00
yunion-ci-robot
3bd3dda026 Merge pull request #6694 from ioito/automated-cherry-pick-of-#6692-upstream-release-3.1
Automated cherry pick of #6692: fix: 返回object默认acl
2020-06-06 10:59:46 +08:00
Qu Xuan
a396868d6a fix: 返回object默认acl 2020-06-05 11:00:56 +08:00
Zexi Li
794b2896f4 Merge pull request #6742 from swordqiu/automated-cherry-pick-of-#6740-upstream-release-3.1
Automated cherry pick of #6740: fix: xsky recode using endpoint as accesskey key
2020-06-04 21:41:06 +08:00
Zexi Li
2443cc9a3c Merge pull request #6738 from tb365/automated-cherry-pick-of-#6737-upstream-release-3.1
Automated cherry pick of #6737: ctyun sync host wire fix
2020-06-04 21:39:51 +08:00
Zexi Li
56ebaea85e Merge pull request #6746 from wanyaoqi/automated-cherry-pick-of-#6744-upstream-release-3.1
Automated cherry pick of #6744: bind mount local image path to container path
2020-06-04 21:24:19 +08:00
Zexi Li
37cefd0d64 Merge pull request #6749 from wanyaoqi/automated-cherry-pick-of-#6173-upstream-release-3.1
Automated cherry pick of #6173: support custom service url
2020-06-04 21:20:05 +08:00
wanyaoqi
8a2c03d683 support custom service url 2020-06-04 20:28:20 +08:00
wanyaoqi
ed136fb2f0 bind mount local image path to container path 2020-06-04 20:22:45 +08:00
Qiu Jian
3b3cbb94d6 fix: xsky recode using endpoint as accesskey key 2020-06-04 19:23:27 +08:00
tangbin
79614b5939 ctyun sync host wire fix 2020-06-04 18:53:00 +08:00
Zexi Li
6fce123623 Merge pull request #6724 from ioito/automated-cherry-pick-of-#6722-upstream-release-3.1
Automated cherry pick of #6722: fix: 添加region翻译
2020-06-04 10:28:27 +08:00
Qu Xuan
d9ddbb5bcf fix: 添加region翻译 2020-06-03 20:41:35 +08:00
Zexi Li
e871084a85 Merge pull request #6718 from tb365/automated-cherry-pick-of-#6696-upstream-release-3.1
Automated cherry pick of #6696: add-enterprise-info-update-climc
2020-06-03 17:26:18 +08:00
Zexi Li
170b08329d Merge pull request #6715 from wanyaoqi/automated-cherry-pick-of-#6713-upstream-release-3.1
Automated cherry pick of #6713: isolated device manager:
2020-06-03 17:25:28 +08:00
tangbin
a433306ba4 add-enterprise-info-update-climc 2020-06-03 16:26:14 +08:00
wanyaoqi
0737e5ed39 isolated device manager:
- fix find boot_vga got No such file or dirtory
2020-06-03 15:53:09 +08:00
yunion-ci-robot
b9c8dc01fb Merge pull request #6688 from ioito/automated-cherry-pick-of-#6686-upstream-release-3.1
Automated cherry pick of #6686: fix: 避免锁超时
2020-06-02 13:59:42 +08:00
Qu Xuan
748d547b88 fix: 避免锁超时 2020-06-02 11:15:15 +08:00
Zexi Li
59d979043e Merge pull request #6677 from ioito/automated-cherry-pick-of-#6675-upstream-release-3.1
Automated cherry pick of #6675: fix: add us-west4 for google region
2020-06-02 10:00:20 +08:00
Zexi Li
9f9e5eed10 Merge pull request #6672 from wanyaoqi/automated-cherry-pick-of-#6670-upstream-release-3.1
Automated cherry pick of #6670: get snapshots order by created at asc
2020-06-02 09:58:38 +08:00
Qu Xuan
e9638cc461 fix: add us-west4 for google region 2020-06-01 18:28:22 +08:00
wanyaoqi
8f15091db1 get snapshots order by created at asc 2020-06-01 15:10:25 +08:00
Zexi Li
3ee4ae370a Merge pull request #6660 from ioito/automated-cherry-pick-of-#6658-upstream-release-3.1
Automated cherry pick of #6658: fix: byte size fix
2020-05-29 19:14:42 +08:00
Qu Xuan
99eb111954 fix: byte size fix 2020-05-29 17:00:25 +08:00
Zexi Li
d968caaa47 Merge pull request #6655 from swordqiu/automated-cherry-pick-of-#6636-upstream-release-3.1
Automated cherry pick of #6636: fix: ignore match weights when searching matched policysets
2020-05-29 14:20:34 +08:00
Zexi Li
a5530fee10 Merge pull request #6652 from wanyaoqi/automated-cherry-pick-of-#6650-upstream-release-3.1
Automated cherry pick of #6650: fix migrate with multi local storage
2020-05-29 14:19:01 +08:00
Qiu Jian
87b4a151df fix: ignore match weights when searching matched policysets 2020-05-29 12:50:15 +08:00
wanyaoqi
1d463ed8c8 fix migrate with multi local storage 2020-05-29 11:54:19 +08:00
yunion-ci-robot
63638b15d1 Merge pull request #6645 from rainzm/automated-cherry-pick-of-#6643-upstream-release-3.1
Automated cherry pick of #6643: feat(notify): Support 'socpe:domain' when list contacts
2020-05-28 19:04:59 +08:00
yunion-ci-robot
5c4bf3e03c Merge pull request #6557 from zhaoxiangchun/automated-cherry-pick-of-#6544-upstream-release-3.1
Automated cherry pick of #6544: 类型是onecloud的notifier增加webconsole的alert
2020-05-28 19:02:00 +08:00
Zexi Li
b239ca7b15 Merge pull request #6639 from ioito/automated-cherry-pick-of-#6637-upstream-release-3.1
Automated cherry pick of #6637: fix: 避免因磁盘数量导致创建机器失败
2020-05-28 17:14:00 +08:00
rainzm
87ca98b362 feat(notify): Support 'socpe:domain' when list contacts
This is a temporary solution.
2020-05-28 15:28:55 +08:00
Qu Xuan
04eaf773fe fix: 避免因磁盘数量导致创建机器失败 2020-05-28 12:08:57 +08:00
Zexi Li
4aa2299b47 Merge pull request #6622 from ioito/automated-cherry-pick-of-#6619-upstream-release-3.1
Automated cherry pick of #6619: fix: 避免azure卸载磁盘失败
2020-05-27 17:52:14 +08:00
Qu Xuan
9c8337ae8f fix: 避免azure卸载磁盘失败 2020-05-27 15:56:40 +08:00
Zexi Li
a8e9c3f510 Merge pull request #6615 from yousong/bugfix/yousong-vpc-key-3.1
apis: WireDetails: fix wrong key for vpc name
2020-05-27 10:30:09 +08:00
Yousong Zhou
290a32b9de apis: WireDetails: fix wrong key for vpc name 2020-05-27 10:02:24 +08:00
Zexi Li
94fe13ddc5 Merge pull request #6600 from wanyaoqi/automated-cherry-pick-of-#6598-upstream-release-3.1
Automated cherry pick of #6598: fix remotefile fetch image propertites
2020-05-26 17:25:02 +08:00
Zexi Li
ad071de5a0 Merge pull request #6596 from ioito/automated-cherry-pick-of-#6594-upstream-release-3.1
Automated cherry pick of #6594: fix: bucket信息修正
2020-05-26 17:14:02 +08:00
wanyaoqi
b570dc9d82 fix remotefile fetch image propertites 2020-05-26 15:54:43 +08:00
Qu Xuan
aa9de0f84d fix: bucket信息修正 2020-05-26 15:10:25 +08:00
Zexi Li
9285208d1c Merge pull request #6584 from zexi/hotfix/k8s-repo-privilege-bk
fix k8s repo wrong privilege
2020-05-25 18:27:18 +08:00
Zexi Li
4112e7052d fix k8s repo wrong privilege 2020-05-25 16:58:06 +08:00
Zexi Li
f33aa39eed Merge pull request #6576 from zhaoxiangchun/automated-cherry-pick-of-#6573-upstream-release-3.1
Automated cherry pick of #6573: zstack宿主机监控中增加参数信息进行Unmarshal
2020-05-25 12:18:09 +08:00
zhaoxiangchun
cd2499c3b0 zstack宿主机监控中增加参数信息进行Unmarshal 2020-05-24 17:19:26 +08:00
Zexi Li
e2fa8d48e6 Merge pull request #6569 from swordqiu/automated-cherry-pick-of-#6567-upstream-release-3.1
Automated cherry pick of #6567: fix: default policy not effective
2020-05-22 22:48:31 +08:00
Zexi Li
a1750c6dd0 Merge pull request #6560 from ioito/automated-cherry-pick-of-#6558-upstream-release-3.1
Automated cherry pick of #6558: fix: 避免openstack以镜像做系统盘创建失败
2020-05-22 22:45:27 +08:00
Qiu Jian
5a93924ff2 fix: default policy not effective 2020-05-22 22:38:19 +08:00
Qu Xuan
0c32be0707 fix: 避免openstack以镜像做系统盘创建失败 2020-05-22 20:17:54 +08:00
zhaoxiangchun
62fe7d977d 类型是onecloud的notifier增加webconsole的alert 2020-05-22 20:04:49 +08:00
Zexi Li
fb4206d904 Merge pull request #6553 from swordqiu/automated-cherry-pick-of-#6551-upstream-release-3.1
Automated cherry pick of #6551: fix: empty matched policies list for roles
2020-05-22 19:32:24 +08:00
Qiu Jian
3afbb86fad fix: empty matched policies list for roles 2020-05-22 18:53:43 +08:00
Zexi Li
aeaa6939c7 Merge pull request #6542 from ioito/automated-cherry-pick-of-#6540-upstream-release-3.1
Automated cherry pick of #6540: fix: 避免因io问题导致同步镜像列表为空
2020-05-22 14:43:49 +08:00
Qu Xuan
950e7696bc fix: 避免因io问题导致同步镜像列表为空 2020-05-22 13:47:47 +08:00
Zexi Li
8bf5eb3321 Merge pull request #6538 from ioito/automated-cherry-pick-of-#6530-upstream-release-3.1
Automated cherry pick of #6530: fix: aliyun rds backup create fix
2020-05-22 12:36:48 +08:00
Qu Xuan
91e558e74a fix: aliyun rds backup create fix 2020-05-22 10:31:55 +08:00
Zexi Li
d196c943eb Merge pull request #6513 from ioito/automated-cherry-pick-of-#6511-upstream-release-3.1
Automated cherry pick of #6511: fix: 避免忽略本地allow any云上deny any安全组规则同步
2020-05-22 10:22:34 +08:00
Zexi Li
61e6a98328 Merge pull request #6522 from swordqiu/automated-cherry-pick-of-#6516-upstream-release-3.1
Automated cherry pick of #6516: fix: system privileges user cannot access system console
2020-05-22 10:15:22 +08:00
yunion-ci-robot
61e81748d7 Merge pull request #6507 from ioito/automated-cherry-pick-of-#6505-upstream-release-3.1
Automated cherry pick of #6505: fix: 上传镜像为转换列表之外时,subformat状态异常
2020-05-21 23:08:50 +08:00
Qiu Jian
51563912b0 fix: system privileges user cannot access system console 2020-05-21 18:44:37 +08:00
Qu Xuan
215f9c4d1d fix: 避免忽略本地allow any云上deny any安全组规则同步 2020-05-21 18:30:39 +08:00
Qu Xuan
a32021969a fix: 上传镜像为转换列表之外时,subformat状态异常 2020-05-21 17:41:55 +08:00
Zexi Li
18e98f598e Merge pull request #6501 from zhaoxiangchun/automated-cherry-pick-of-#6500-upstream-release-3.1
Automated cherry pick of #6500: 修复当prestate=alerting,newstate=alerting的情况无法触发notify的问题
2020-05-21 16:37:58 +08:00
Zexi Li
520af18f9e Merge pull request #6489 from rainzm/automated-cherry-pick-of-#6487-upstream-release-3.1
Automated cherry pick of #6487: Fix/esxi
2020-05-21 16:33:17 +08:00
zhaoxiangchun
28fab54660 修复当prestate=alerting,newstate=alerting的情况无法触发notify的问题 2020-05-21 13:57:14 +08:00
rainzm
4f9bbe0674 fix(esxi): Modify the disk size correctly when creating vm 2020-05-21 10:50:25 +08:00
rainzm
d3fb8a60d7 fix(esxi): Detach all disk first when deleting vm 2020-05-21 10:50:25 +08:00
rainzm
3276164c8b Kill processes in time & Add debug info 2020-05-21 10:50:25 +08:00
rainzm
d759c27bf6 fix(esxi): Remove 'Destory' operation that is unnecessary for VirtualDiskManager 2020-05-21 10:50:25 +08:00
rainzm
ce827235b3 fix(esxi): Separate detach disk and delete disk when rebuilding.
In previous versions, set
`removeSpec.FileOperation = types.VirtualDeviceConfigSpecFileOperationDestroy'
to delete disk indirectly.

But, when its parent has only one child, the parent will be deleted along with it.
And the consequence is failure to reinstall the system.

Now, detach disk without deleteing backing file and then remove backing
2020-05-21 10:50:25 +08:00
Zexi Li
9534c153c3 Merge pull request #6493 from zexi/automated-cherry-pick-of-#6491-upstream-release-3.1
Automated cherry pick of #6491: keystone: fix db not sync
2020-05-20 17:32:24 +08:00
Zexi Li
e4eb798fda keystone: fix db not sync 2020-05-20 17:23:07 +08:00
Zexi Li
34cef736d3 Merge pull request #6482 from zexi/automated-cherry-pick-of-#6481-upstream-release-3.1
Automated cherry pick of #6481: region: fix get resource details panic
2020-05-20 14:00:12 +08:00
Zexi Li
a175ca421f region: fix get resource details panic 2020-05-20 13:30:32 +08:00
Zexi Li
03b13297e8 Merge pull request #6476 from yousong/automated-cherry-pick-of-#6474-upstream-release-3.1
Automated cherry pick of #6474: cloudcommon: rbac: fix typo
2020-05-20 12:53:21 +08:00
Zexi Li
1b3c442407 Merge pull request #6480 from tb365/automated-cherry-pick-of-#6463-upstream-release-3.1
Automated cherry pick of #6463: add fuzzy ip matching
2020-05-20 12:51:58 +08:00
tangbin
949c202692 add fuzzy ip matching 2020-05-20 12:02:29 +08:00
Zexi Li
47be971d66 Merge pull request #6455 from ioito/automated-cherry-pick-of-#6453-upstream-release-3.1
Automated cherry pick of #6453: fix: 优化azure image同步逻辑
2020-05-20 11:08:27 +08:00
Yousong Zhou
77a36234a4 networks: return HTTP 404 for sql.ErrNoRows 2020-05-20 11:06:34 +08:00
Yousong Zhou
2f89114413 wires: default to "default" vpc on creation
Wire creation request right now only makes sense in context of classic
network ("default" vpc)
2020-05-20 11:06:34 +08:00
Yousong Zhou
2322118457 networks: eliminate a variable 2020-05-20 11:05:50 +08:00
Yousong Zhou
fa5fbccf2b guestdrivers: managed: use const api.EIP_STATUS_ASSOCIATE 2020-05-20 11:05:50 +08:00
Yousong Zhou
c5cf45772c cloudprovider: fix typo 2020-05-20 11:05:50 +08:00
Yousong Zhou
6daa0a1d4f cloudcommon: rbac: fix typo 2020-05-20 11:05:50 +08:00
yunion-ci-robot
a304d30020 Merge pull request #6471 from tb365/automated-cherry-pick-of-#6463-upstream-release-3.1
Automated cherry pick of #6463: add fuzzy ip matching
2020-05-19 19:29:40 +08:00
tangbin
8aed26a110 add fuzzy ip matching 2020-05-19 19:24:55 +08:00
Zexi Li
6c78e3d349 Merge pull request #6460 from ioito/automated-cherry-pick-of-#6458-upstream-release-3.1
Automated cherry pick of #6458: fix: 修复zstack使用win镜像时userdata base64加密问题
2020-05-19 19:13:56 +08:00
Zexi Li
83a5574e5d Merge pull request #6465 from zexi/automated-cherry-pick-of-#6462-upstream-release-3.1
Automated cherry pick of #6462: region: fix server create params not include specified resource
2020-05-19 19:08:52 +08:00
Zexi Li
f05ed6ccb6 region: fix server create params not include specified resource 2020-05-19 17:38:46 +08:00
Qu Xuan
73ca4a9ee8 fix: 修复zstack使用win镜像时userdata base64加密问题 2020-05-19 16:47:29 +08:00
Qu Xuan
144bc806b8 fix: 优化azure image同步逻辑 2020-05-19 16:24:47 +08:00
Zexi Li
144ebc6e8b Merge pull request #6445 from swordqiu/automated-cherry-pick-of-#6443-upstream-release-3.1
Automated cherry pick of #6443: fix: anonymous user may list resources
2020-05-19 10:17:58 +08:00
Zexi Li
33fd165939 Merge pull request #6439 from zexi/automated-cherry-pick-of-#6436-upstream-release-3.1
Automated cherry pick of #6436: baremetal: fix ssh put empty content file not created
2020-05-19 10:16:12 +08:00
Qiu Jian
08971d413a fix: anonymous user may list resources 2020-05-19 01:24:16 +08:00
Zexi Li
c321c6c4b7 Merge pull request #6425 from ioito/automated-cherry-pick-of-#6423-upstream-release-3.1
Automated cherry pick of #6423: fix: 避免仅同步一个region时,其余region状态变为准备中
2020-05-18 21:49:19 +08:00
Zexi Li
45d627da21 Merge pull request #6430 from ioito/automated-cherry-pick-of-#6428-upstream-release-3.1
Automated cherry pick of #6428: fix: 避免设置自动释放后磁盘的expired_at失效
2020-05-18 21:47:59 +08:00
Zexi Li
24a6b94fc8 baremetal: fix ssh put empty content file not created 2020-05-18 21:46:04 +08:00
Qu Xuan
7fd2a886b4 fix: 避免设置自动释放后磁盘的expired_at失效 2020-05-18 20:08:29 +08:00
Qu Xuan
4a9030636b fix: 避免仅同步一个region时,其余region状态变为准备中 2020-05-18 19:38:00 +08:00
Zexi Li
15ba242294 Merge pull request #6413 from rainzm/release/3.1
update vendor for release/3.1
2020-05-17 14:18:12 +08:00
Zexi Li
12b8efa2a1 Merge pull request #6414 from zhaoxiangchun/automated-cherry-pick-of-#6410-upstream-release-3.1
Automated cherry pick of #6410: 修复无法获取vmware宿主机监控数据的问题
2020-05-17 14:17:01 +08:00
zhaoxiangchun
715c1ba936 修复无法获取vmware宿主机监控数据的问题 2020-05-16 21:23:00 +08:00
rainzm
a50e8a797e update vendor 2020-05-16 21:21:45 +08:00
yunion-ci-robot
a314b7a37b Merge pull request #6390 from zexi/automated-cherry-pick-of-#6388-upstream-release-3.1
Automated cherry pick of #6388: region: fix baremetal can't enable public baremetal type network
2020-05-16 18:05:03 +08:00
Zexi Li
f3838108cd Merge pull request #6397 from swordqiu/automated-cherry-pick-of-#6395-upstream-release-3.1
Automated cherry pick of #6395: fix: server-sync-fix-nics should return errors if vnics ip is not reachable on host
2020-05-16 17:44:50 +08:00
Zexi Li
756e1f5570 Merge pull request #6377 from rainzm/automated-cherry-pick-of-#6375-upstream-release-3.1
Automated cherry pick of #6375: Fix/esxi
2020-05-16 17:41:39 +08:00
Zexi Li
9425460800 region: fix baremetal can't enable public baremetal type network 2020-05-16 17:30:59 +08:00
Qiu Jian
bebdc5532c fix: server-sync-fix-nics should return errors if vnics ip is not reachable on host 2020-05-15 22:20:18 +08:00
rainzm
069805fa89 fix(esxi): Allow the creation of duplicate vcenter machines.
Create vm with name whose vlaue is localVM.Uuid and try to rename again.
2020-05-15 21:36:50 +08:00
rainzm
eae078398b fix(esxi): Add usb to support mouse in vnc viewer 2020-05-15 21:36:50 +08:00
rainzm
068a89b234 fix(esxi): Fix GetDriver and add driver log for vdisk.
In GetDriver, return 'name' directly if driverMap is empty.
2020-05-15 21:36:50 +08:00
rainzm
b27a0af647 fix(esxi): Set 'WindowsDefaultAdminUser' as true when deploy vm.
'WindowsDefaultAdminUser' means that the default admin account is
'Administrator' when deploy windows vm.
2020-05-15 21:36:50 +08:00
rainzm
7bc16cacad fix(region): Set default value if rootdisk's driver is empty. 2020-05-15 21:36:50 +08:00
rainzm
700e513595 fix(esxi): Disable automatically add host to the dvs 2020-05-15 21:36:50 +08:00
rainzm
9113050534 fix(esxi): Set 'IsInit' as true when rebuildroot
IsInit is true will cause cloudinit enable. When rebuilding root, if there is cloudinit service in the image, it will cover the initialization work we did on the rebuilding.
2020-05-15 21:36:50 +08:00
Zexi Li
89c80a43f8 Merge pull request #6384 from zexi/automated-cherry-pick-of-#6381-upstream-release-3.1
Automated cherry pick of #6381: scheduler: fix min counter get count not correct
2020-05-15 15:28:30 +08:00
Zexi Li
e2d86cc624 scheduler: fix min counter get count not correct 2020-05-15 15:09:40 +08:00
Zexi Li
99e30e2dc1 Merge pull request #6362 from ioito/automated-cherry-pick-of-#6346-upstream-release-3.1
Automated cherry pick of #6346: fix: 优化windows powershell userdata
2020-05-15 11:09:58 +08:00
Zexi Li
110555570c Merge pull request #6360 from ioito/automated-cherry-pick-of-#6352-upstream-release-3.1
Automated cherry pick of #6352: fix: 优化rds zone同步逻辑
2020-05-15 11:05:52 +08:00
Qu Xuan
7a80b316ac fix: 优化windows powershell userdata 2020-05-14 20:43:41 +08:00
Qu Xuan
1445a91007 fix: 优化rds zone同步逻辑 2020-05-14 20:26:55 +08:00
Zexi Li
d4a81bedf9 Merge pull request #6356 from zexi/automated-cherry-pick-of-#6353-upstream-release-3.1
Automated cherry pick of #6353: scheduler: filter disabled cloudprovider
2020-05-14 18:59:29 +08:00
Zexi Li
05313e1f9a Merge pull request #6340 from swordqiu/automated-cherry-pick-of-#6338-upstream-release-3.1
Automated cherry pick of #6338: fix: avoid using background context
2020-05-14 18:19:31 +08:00
Zexi Li
372646dd0d scheduler: filter disabled cloudprovider 2020-05-14 18:15:32 +08:00
Zexi Li
617adad306 Merge pull request #6349 from zexi/automated-cherry-pick-of-#6347-upstream-release-3.1
Automated cherry pick of #6347: scheduler: set schedtag default strategy if input empty
2020-05-14 17:49:23 +08:00
Zexi Li
8ad98ea029 scheduler: set schedtag default strategy if input empty 2020-05-14 17:26:28 +08:00
Qiu Jian
869d434ce1 fix: avoid using background context 2020-05-14 17:05:10 +08:00
yunion-ci-robot
1b5c347408 Merge pull request #6321 from wanyaoqi/automated-cherry-pick-of-#6319-upstream-release-3.1
Automated cherry pick of #6319: do not close worker chan
2020-05-13 20:18:02 +08:00
wanyaoqi
bccdbae49d do not close worker chan
don't close worker chan after put work, will cause dead loop
2020-05-13 18:58:45 +08:00
Zexi Li
63fe793a2f Merge pull request #6304 from yousong/automated-cherry-pick-of-#6302-upstream-release-3.1
Automated cherry pick of #6302: vpcagent: ignore possible external subnets
2020-05-13 12:45:38 +08:00
Zexi Li
e9e6ff2425 Merge pull request #6311 from ioito/automated-cherry-pick-of-#6306-upstream-release-3.1
Automated cherry pick of #6306: fix: openstack 安全组规则同步
2020-05-13 12:42:00 +08:00
Zexi Li
dcdcbcae11 Merge pull request #6294 from ioito/automated-cherry-pick-of-#6292-upstream-release-3.1
Automated cherry pick of #6292: fix: 优化openstack错误处理
2020-05-13 10:42:51 +08:00
Yousong Zhou
b1d2f2e2fc vpcagent: ignore possible external subnets 2020-05-12 18:06:47 +08:00
Qu Xuan
0473fe6524 fix: openstack 安全组规则同步 2020-05-12 17:57:46 +08:00
Qu Xuan
08bef5e63f fix: 优化openstack错误处理 2020-05-12 14:09:35 +08:00
Zexi Li
743b4d2561 Merge pull request #6289 from yousong/automated-cherry-pick-of-#6287-upstream-release-3.1
Automated cherry pick of #6287: region: lbagent: undeploy: make it idempotent
2020-05-12 11:50:34 +08:00
Zexi Li
66b937acc5 Merge pull request #6284 from yousong/automated-cherry-pick-of-#6282-upstream-release-3.1
Automated cherry pick of #6282: region: lbagents: fix deleting pending_deleted objects
2020-05-12 11:43:46 +08:00
Yousong Zhou
0781273c26 region: lbagent: undeploy: make it idempotent
Both the following three can result in the same error message "Could not
find the requested service yunion-xx: host"

  -m systemd -a 'name=yunion-xx enabled=no state=stopped daemon_reload=yes'
  -m systemd -a 'name=yunion-xx enabled=no state=stopped daemon_reload=yes force=yes'
  -m service -a 'name=yunion-xx enabled=no state=stopped'

Use of ansibleplaybookv2 is overkill and can break console expectation.
Just turn to shell module for now
2020-05-12 10:39:17 +08:00
Yousong Zhou
8a619edb7a region: lbagents: fix deleting pending_deleted objects
This was broken since the introduction of virtual object
2020-05-12 10:11:22 +08:00
Zexi Li
32429e54b7 Merge pull request #6272 from zexi/automated-cherry-pick-of-#6270-upstream-release-3.1
Automated cherry pick of #6270: scheduler: get region nil panic
2020-05-11 21:07:44 +08:00
Zexi Li
28b00fc130 Merge pull request #6260 from ioito/automated-cherry-pick-of-#6258-upstream-release-3.1
Automated cherry pick of #6258: fix: 避免aliyun磁盘计费类型多次转换
2020-05-11 18:17:09 +08:00
Zexi Li
b42df76abd scheduler: get region nil panic 2020-05-11 18:02:36 +08:00
Qu Xuan
15ee6e6920 fix: 避免aliyun磁盘计费类型多次转换 2020-05-11 14:06:25 +08:00
Zexi Li
9bb48de844 Merge pull request #6255 from swordqiu/automated-cherry-pick-of-#6252-upstream-release-3.1
Automated cherry pick of #6252: fix: panic when disk has no valid storage_id
2020-05-11 10:01:46 +08:00
Qiu Jian
e8f7ab6676 fix: panic when disk has no valid storage_id 2020-05-11 02:58:03 +08:00
Zexi Li
14542810a8 Merge pull request #6249 from wanyaoqi/automated-cherry-pick-of-#6247-upstream-release-3.1
Automated cherry pick of #6247: fix import from libvirt
2020-05-10 21:35:11 +08:00
Zexi Li
3175bdd0cc Merge pull request #6235 from tb365/automated-cherry-pick-of-#6232-upstream-release-3.1
Automated cherry pick of #6232: huawei network id fix
2020-05-10 21:33:44 +08:00
wanyaoqi
25003603aa fix import from libvirt 2020-05-10 20:44:13 +08:00
Zexi Li
74ea904e4c Merge pull request #6244 from yousong/automated-cherry-pick-of-#6242-upstream-release-3.1
Automated cherry pick of #6242: disks: reword error message on bad DiskConfig struct
2020-05-10 11:29:08 +08:00
Yousong Zhou
ae2926168c disks: reword error message on bad DiskConfig struct 2020-05-10 00:18:39 +08:00
tangbin
12335b8f62 huawei network id fix 2020-05-09 20:11:47 +08:00
Zexi Li
b118cbe143 Merge pull request #6223 from yousong/automated-cherry-pick-of-#6221-upstream-release-3.1
Automated cherry pick of #6221: cloudprovider: add methods for getting http client
2020-05-09 19:02:21 +08:00
Zexi Li
8b0437f988 Merge pull request #6215 from yousong/automated-cherry-pick-of-#6213-upstream-release-3.1
Automated cherry pick of #6213: vpcagent: ovn: explicitly include gateway route in classless routes
2020-05-09 18:57:20 +08:00
Zexi Li
0fdb86ecb1 Merge pull request #6227 from yousong/automated-cherry-pick-of-#6225-upstream-release-3.1
Automated cherry pick of #6225: apigateway: handlers: register cloudnet modules
2020-05-09 18:47:47 +08:00
Yousong Zhou
254bac3ffe apigateway: handlers: register cloudnet modules 2020-05-09 16:41:27 +08:00
Yousong Zhou
472721bc18 multicloud: loader: guard against changing proxyFunc of default client 2020-05-09 12:56:51 +08:00
Yousong Zhou
f62c00d342 multicloud: avoid changing transport of global default http client 2020-05-09 12:56:51 +08:00
Yousong Zhou
b62c930289 cloudprovider: add methods for getting http client
Prepare for following changes to avoid using and changing default
client settings
2020-05-09 12:56:51 +08:00
Yousong Zhou
ed583438b1 vpcagent: ovn: explicitly include gateway route in classless routes 2020-05-08 16:36:44 +08:00
Zexi Li
0dda6257fc Merge pull request #6188 from zhaoxiangchun/automated-cherry-pick-of-#6185-upstream-release-3.1
Automated cherry pick of #6185: 修复谷歌监控无法获取的问题
2020-05-07 17:21:33 +08:00
Zexi Li
9944fc1e27 Merge pull request #6191 from zhaoxiangchun/automated-cherry-pick-of-#5863-upstream-release-3.1
Automated cherry pick of #5863: 优化邮件格式
2020-05-07 17:20:46 +08:00
zhaoxiangchun
86524a8574 优化邮件格式
1.邮件主题中的报警级别和web页面进行对应
2.向onecloud发送邮件时,通过html/template进行格式化
2020-05-07 15:31:22 +08:00
zhaoxiangchun
822c972ce8 修复谷歌监控无法获取的问题
直接返回调用RestAPI的json格式数据
2020-05-07 11:28:07 +08:00
Zexi Li
23ec7d77c7 Merge pull request #6170 from yousong/automated-cherry-pick-of-#6168-upstream-release-3.1
Automated cherry pick of #6168: dnsrecords: note that DnsRecordManager is a IAdminSharableVirtualModelManager
2020-05-07 11:23:19 +08:00
Zexi Li
83a30f1c7c Merge pull request #6176 from swordqiu/automated-cherry-pick-of-#6174-upstream-release-3.1
Automated cherry pick of #6174: fix: fail to fetch real client ip from httprequest
2020-05-07 11:16:27 +08:00
Qiu Jian
ff287c632e fix: fail to fetch real client ip from httprequest 2020-05-06 22:27:32 +08:00
Yousong Zhou
e98516a94a dnsrecords: allow updating only description
This commit includes the following changes

 - Eliminate unused arguments from validateModelData()
 - Remove "records" member of input data unconditionally
 - Allow updates to not include records related parameters, to allow
   updating only "description" without emitting "Empty record" error
2020-05-06 18:42:53 +08:00
Yousong Zhou
8176d74976 dnsrecords: note that DnsRecordManager is a IAdminSharableVirtualModelManager 2020-05-06 18:42:53 +08:00
yunion-ci-robot
59419868a0 Merge pull request #6160 from zhaoxiangchun/automated-cherry-pick-of-#6158-upstream-release-3.1
Automated cherry pick of #6158: bugfix mem paginate
2020-05-06 15:44:45 +08:00
zhaoxiangchun
c733a582dd bugfix mem paginate
通过totoal和offset 与limit比较确定最后返回数据
2020-05-06 11:06:03 +08:00
Zexi Li
6fcba7d320 Merge pull request #6155 from ioito/automated-cherry-pick-of-#6153-upstream-release-3.1
Automated cherry pick of #6153: fix: secgroupcache权限问题修复
2020-04-30 20:14:06 +08:00
Qu Xuan
0cb9db8835 fix: secgroupcache权限问题修复 2020-04-30 15:43:30 +08:00
Zexi Li
7230a47ed3 Merge pull request #6139 from ioito/automated-cherry-pick-of-#6137-upstream-release-3.1
Automated cherry pick of #6137: fix: 云账号创建可以指定项目
2020-04-30 10:36:42 +08:00
Zexi Li
c6e8eb6d10 Merge pull request #6127 from ioito/automated-cherry-pick-of-#6123-upstream-release-3.1
Automated cherry pick of #6123: fix: usage-handler 不统计虚拟的vpc wire
2020-04-30 10:36:21 +08:00
Zexi Li
7b9b78fed3 Merge pull request #6129 from swordqiu/automated-cherry-pick-of-#6120-upstream-release-3.1
Automated cherry pick of #6120: fix: sysadmin can override policy violation check
2020-04-29 21:15:48 +08:00
Qu Xuan
7a0420dc1a fix: 云账号创建可以指定项目 2020-04-29 20:06:58 +08:00
Zexi Li
952879c40e Merge pull request #6132 from tb365/bugfix/tb-bugfix-0429
fix: FindAnonymousStructPoint needs input as a pointer to struct
2020-04-29 19:29:34 +08:00
Qiu Jian
2fb5c0b24e fix: FindAnonymousStructPoint needs input as a pointer to struct 2020-04-29 18:11:56 +08:00
Qiu Jian
899184eb4b fix: sysadmin can override policy violation check 2020-04-29 17:59:36 +08:00
Qu Xuan
93330a3c2a fix: usage-handler 不统计虚拟的vpc wire 2020-04-29 17:58:26 +08:00
Zexi Li
001519224c Merge pull request #6113 from swordqiu/automated-cherry-pick-of-#6111-upstream-release-3.1
Automated cherry pick of #6111: fix: prevent policy violation
2020-04-29 13:10:29 +08:00
Zexi Li
949979fca1 Merge pull request #6097 from ioito/automated-cherry-pick-of-#6095-upstream-release-3.1
Automated cherry pick of #6095: fix: 普通用户可获取rds账号密码
2020-04-29 13:08:13 +08:00
Qiu Jian
5d6abcc7df fix: prevent policy violation 2020-04-28 23:56:37 +08:00
yunion-ci-robot
498961324c Merge pull request #6105 from ioito/automated-cherry-pick-of-#6103-upstream-release-3.1
Automated cherry pick of #6103: fix: 修复openstack存储同步问题
2020-04-28 23:40:41 +08:00
Qu Xuan
916a05c9bf fix: 修复openstack存储同步问题 2020-04-28 14:48:00 +08:00
Qu Xuan
44b78f47d5 fix: 普通用户可获取rds账号密码 2020-04-28 10:42:11 +08:00
Zexi Li
203284a6f9 Merge pull request #6089 from yousong/bugfix/yousong-vpcagent-3.1
[3.1] vpcagent: models: allow guest to have multiple vpc nics
2020-04-27 21:01:21 +08:00
Zexi Li
14be39a37f Merge pull request #6084 from yousong/bugfix/yousong-proxysetting-3.1
[3.1] region: cloudaccounts: fix updating failure caused by proxysetting
2020-04-27 20:53:55 +08:00
Yousong Zhou
05afabb69c vpcagent: models: allow guest to have multiple vpc nics
(cherry picked from commit 09cc38f962)
2020-04-27 17:52:29 +08:00
Yousong Zhou
95290a1c0d region: cloudaccounts: fix updating failure caused by proxysetting 2020-04-27 17:32:04 +08:00
Zexi Li
08f240762b Merge pull request #6070 from ioito/automated-cherry-pick-of-#6068-upstream-release-3.1
Automated cherry pick of #6068: fix: gcp use project name for cloudprovider
2020-04-27 16:03:23 +08:00
Qu Xuan
953f235110 fix: gcp use project name for cloudprovider 2020-04-27 14:17:03 +08:00
Zexi Li
861f827101 Merge pull request #6064 from rainzm/automated-cherry-pick-of-#6062-upstream-release-3.1
Automated cherry pick of #6062: fix/notify: Add deadline for rpc client
2020-04-27 12:48:07 +08:00
Rain
7c20400bc6 fix/notify: Add deadline for rpc client 2020-04-27 10:44:24 +08:00
Zexi Li
070876e760 Merge pull request #6047 from tb365/automated-cherry-pick-of-#6042-upstream-release-3.1
Automated cherry pick of #6042: huawei elb cookie timeout fix
2020-04-26 21:06:27 +08:00
Zexi Li
35542cb381 Merge pull request #6043 from tb365/automated-cherry-pick-of-#6040-upstream-release-3.1
Automated cherry pick of #6040: ctyun subnet create bugfix
2020-04-26 20:31:24 +08:00
tangbin
d0b166364a aws elb health check type fix 2020-04-26 20:10:24 +08:00
tangbin
b20725656e huawei elb cookie timeout fix 2020-04-26 20:10:24 +08:00
tangbin
fa6991ce94 ctyun subnet create bugfix 2020-04-26 20:08:18 +08:00
yunion-ci-robot
fb39dbc772 Merge pull request #6011 from swordqiu/automated-cherry-pick-of-#6008-upstream-release-3.1
Automated cherry pick of #6008: fix: GetOnPremiseNetworkOfIP should return underlay networks
2020-04-26 19:49:32 +08:00
Zexi Li
85c21e6dbb Merge pull request #6030 from ioito/automated-cherry-pick-of-#6028-upstream-release-3.1
Automated cherry pick of #6028: fix: json unmarshal
2020-04-26 18:19:23 +08:00
Zexi Li
77f0ccf889 Merge pull request #6027 from swordqiu/automated-cherry-pick-of-#6006-upstream-release-3.1
Automated cherry pick of #6006: fix: resolve parameter name conflict in google cloud account create input
2020-04-26 16:36:22 +08:00
Qu Xuan
da3383d81a fix: json unmarshal 2020-04-26 15:52:13 +08:00
Qiu Jian
5fec0b66a5 fix: resolve parameter name conflict in google cloud account create input 2020-04-26 11:47:55 +08:00
yunion-ci-robot
20b6277c6a Merge pull request #6016 from zexi/automated-cherry-pick-of-#6014-upstream-release-3.1
Automated cherry pick of #6014: scheduler: fix network predicate get wrong free port
2020-04-26 00:31:30 +08:00
Zexi Li
3eedb00e11 scheduler: fix network predicate get wrong free port 2020-04-25 23:55:13 +08:00
Qiu Jian
d8251ce270 fix: GetOnPremiseNetworkOfIP should return underlay networks 2020-04-25 16:31:03 +08:00
Zexi Li
7d4a57cf33 Merge pull request #5992 from ioito/automated-cherry-pick-of-#5918-upstream-release-3.1
Automated cherry pick of #5918: fix: 修复华为云eneterprise-project-list异常问题
2020-04-24 18:18:13 +08:00
Zexi Li
562fbb2afe Merge pull request #5997 from yousong/automated-cherry-pick-of-#5995-upstream-release-3.1
Automated cherry pick of #5995: lblistener: fix updating lblistener without backend_group field
2020-04-24 18:17:22 +08:00
Yousong Zhou
51f0d8448d lblistener: fix updating lblistener without backend_group field
Fixes dd01610931 ("lblistener: allow setting http/https listener
backendgroup to empty")
2020-04-24 14:23:02 +08:00
Qu Xuan
9d479e6293 fix: 修复华为云eneterprise-project-list异常问题 2020-04-24 14:12:50 +08:00
Zexi Li
3955c45d63 Merge pull request #5990 from ioito/automated-cherry-pick-of-#5903-upstream-release-3.1
Automated cherry pick of #5903: fix: esxi disk project sync
2020-04-24 14:09:54 +08:00
Zexi Li
49737431a2 Merge pull request #5988 from ioito/automated-cherry-pick-of-#5881-upstream-release-3.1
Automated cherry pick of #5881: fix: 阿里云资源组同步
2020-04-24 14:09:34 +08:00
Qu Xuan
52c76cb49c fix: esxi disk project sync 2020-04-24 11:35:07 +08:00
Qu Xuan
c1198af38e VMware resource pool同步 2020-04-24 11:33:48 +08:00
Qu Xuan
be56970506 fix: 华为企业项目映射同步 2020-04-24 11:33:48 +08:00
Qu Xuan
c2d83b0007 fix: 阿里云资源组同步 2020-04-24 11:32:26 +08:00
Zexi Li
080c77685c Merge pull request #5977 from ioito/automated-cherry-pick-of-#5975-upstream-release-3.1
Automated cherry pick of #5975: fix: 添加cloudevent过滤参数
2020-04-24 01:36:28 +08:00
Zexi Li
18c63a1fdc Merge pull request #5981 from ioito/automated-cherry-pick-of-#5979-upstream-release-3.1
Automated cherry pick of #5979: fix: cloudevent使用代理优化
2020-04-24 01:35:31 +08:00
Qu Xuan
7478891d74 fix: 添加cloudevent过滤参数 2020-04-23 17:58:27 +08:00
Qu Xuan
e336583552 fix: cloudevent使用代理优化 2020-04-23 17:55:25 +08:00
yunion-ci-robot
c0f88cc35d Merge pull request #5939 from ioito/automated-cherry-pick-of-#5915-upstream-release-3.1
Automated cherry pick of #5915: fix: 自动创建项目
2020-04-23 13:40:53 +08:00
Zexi Li
f636bd4c15 Merge pull request #5969 from swordqiu/automated-cherry-pick-of-#5966-upstream-release-3.1
Automated cherry pick of #5966: supermicro redfish support
2020-04-23 09:54:53 +08:00
Qiu Jian
eb7f0d465d remove errors import 2020-04-23 09:32:07 +08:00
Qiu Jian
fa2e55ce14 supermicro redfish support 2020-04-23 09:31:24 +08:00
Zexi Li
6d2c73e1bc Merge pull request #5930 from yousong/automated-cherry-pick-of-#5928-upstream-release-3.1
Automated cherry pick of #5928: lbagent: fend off unexpected resources just in case
2020-04-23 00:07:15 +08:00
Zexi Li
ce542891d9 Merge pull request #5963 from swordqiu/automated-cherry-pick-of-#5961-upstream-release-3.1
Automated cherry pick of #5961: fix: clean pending usage caused by pre-validate-create-data
2020-04-23 00:03:15 +08:00
Zexi Li
8f02b26ae3 Merge pull request #5922 from ioito/automated-cherry-pick-of-#5919-upstream-release-3.1
Automated cherry pick of #5919: fix: 非私有云同步region name
2020-04-22 23:59:45 +08:00
Zexi Li
4a3d0bef39 Merge pull request #5932 from ioito/automated-cherry-pick-of-#5931-upstream-release-3.1
Automated cherry pick of #5931: fix: 转换非标准存储类型到lrs
2020-04-22 23:57:17 +08:00
Zexi Li
93c94454d5 Merge pull request #5948 from tb365/automated-cherry-pick-of-#5945-upstream-release-3.1
Automated cherry pick of #5945: huawei elb sync vpc
2020-04-22 23:55:51 +08:00
Zexi Li
fa7dd281e8 Merge pull request #5954 from zexi/automated-cherry-pick-of-#5951-upstream-release-3.1
Automated cherry pick of #5951: baremetal: ensure power up add retries
2020-04-22 23:52:40 +08:00
Qiu Jian
5f78b96dad fix: clean pending usage caused by pre-validate-create-data 2020-04-22 23:48:24 +08:00
yunion-ci-robot
29d428a6db Merge pull request #5941 from tb365/automated-cherry-pick-of-#5927-upstream-release-3.1
Automated cherry pick of #5927: remove aws invalid backendgroup
2020-04-22 23:05:06 +08:00
Zexi Li
d8f1cd5bf6 baremetal: ensure power up add retries 2020-04-22 22:16:44 +08:00
tangbin
ead643b844 huawei elb sync vpc 2020-04-22 20:30:43 +08:00
tangbin
f399796852 remove aws invalid backendgroup 2020-04-22 19:01:21 +08:00
Qu Xuan
be77084d0e fix: 自动创建项目 2020-04-22 18:56:56 +08:00
Qu Xuan
61c52e6cb5 fix: 转换非标准存储类型到lrs 2020-04-22 18:53:45 +08:00
Yousong Zhou
3a42c05133 lbagent: fend off unexpected resources just in case
As resource we do not know whether they are bad, but surely we know
they are not what we expect
2020-04-22 18:50:50 +08:00
Qu Xuan
5d2d5f2cb1 fix: 非私有云同步region name 2020-04-22 18:00:02 +08:00
Zexi Li
849756946b Merge pull request #5902 from ioito/automated-cherry-pick-of-#5900-upstream-release-3.1
Automated cherry pick of #5900: fix: 尽量避免因代理问题导致google request异常
2020-04-22 15:12:20 +08:00
Zexi Li
18ae833a5e Merge pull request #5908 from swordqiu/automated-cherry-pick-of-#5906-upstream-release-3.1
Automated cherry pick of #5906: fix: blacklist keystone reset admin password
2020-04-22 15:07:38 +08:00
Qiu Jian
bfb913105d fix: blacklist keystone reset admin password 2020-04-22 15:03:09 +08:00
Qu Xuan
d9e5df08db fix: 尽量避免因代理问题导致google request异常 2020-04-22 10:48:47 +08:00
Zexi Li
daeca7f7bf Merge pull request #5893 from swordqiu/automated-cherry-pick-of-#5890-upstream-release-3.1
Automated cherry pick of #5890: fix: policy details should carry updated_at and created_at fields
2020-04-22 10:39:21 +08:00
Zexi Li
bd117d6d1e Merge pull request #5898 from swordqiu/automated-cherry-pick-of-#5895-upstream-release-3.1
Automated cherry pick of #5895: fix: delete idp also delete users/groups in target domain
2020-04-22 10:34:08 +08:00
Zexi Li
383b73551a Merge pull request #5886 from ioito/automated-cherry-pick-of-#5884-upstream-release-3.1
Automated cherry pick of #5884: fix: 仅当变更domainId时才需要更新projectId
2020-04-22 10:32:39 +08:00
Qiu Jian
71351daa59 fix: delete idp also delete users/groups in target domain 2020-04-22 10:15:34 +08:00
Qiu Jian
a5b44df050 fix: policy details should carry updated_at and created_at fields 2020-04-21 22:43:17 +08:00
Qu Xuan
882c5ddc86 fix: 仅当变更domainId时才需要更新projectId 2020-04-21 21:14:39 +08:00
Zexi Li
37e6b25f4a Merge pull request #5858 from ioito/automated-cherry-pick-of-#5856-upstream-release-3.1
Automated cherry pick of #5856: fix: show sql connection error
2020-04-20 20:55:38 +08:00
Zexi Li
5a2d4737f3 Merge pull request #5868 from tb365/automated-cherry-pick-of-#5865-upstream-release-3.1
Automated cherry pick of #5865: lblis & lbbg & lbr & lbb create add fetch owner id
2020-04-20 20:51:23 +08:00
tangbin
f7b11621a7 lblis & lbbg & lbr & lbb create add fetch owner id 2020-04-20 19:31:09 +08:00
Qu Xuan
13bef96917 fix: show sql connection error 2020-04-20 16:50:15 +08:00
Zexi Li
cfafea78e7 Merge pull request #5851 from swordqiu/automated-cherry-pick-of-#5850-upstream-release-3.1
Automated cherry pick of #5850: fix: allow any character in project/domain name, giveup displayname
2020-04-18 16:27:49 +08:00
Qiu Jian
e94e63d6d4 fix: allow any character in project/domain name, giveup displayname 2020-04-18 16:00:17 +08:00
Zexi Li
b8b8174632 Merge pull request #5848 from swordqiu/automated-cherry-pick-of-#5845-upstream-release-3.1
Automated cherry pick of #5845: fix: cloudproviderregion sync ignore panic
2020-04-18 12:02:31 +08:00
Zexi Li
59ead8ac15 Merge pull request #5843 from tb365/automated-cherry-pick-of-#5840-upstream-release-3.1
Automated cherry pick of #5840: aws elb create bugfix
2020-04-18 12:00:12 +08:00
yunion-ci-robot
0750fad9b4 Merge pull request #5849 from swordqiu/hotfix/qj-proxy-settting-id-revisit-3.1
fix: proxysetting_id => proxysetting revisited on 3.1
2020-04-17 22:50:05 +08:00
Qiu Jian
09274e2574 fix: proxysetting_id => proxysetting revisited on 3.1 2020-04-17 22:20:43 +08:00
Qiu Jian
102361dc2a fix: cloudproviderregion sync ignore panic 2020-04-17 22:08:58 +08:00
TangBin
a4197e96b1 huawei oss client bugfix 2020-04-17 20:47:47 +08:00
TangBin
ac2015d6df huawei oss client fix & huawei client init fix 2020-04-17 20:47:47 +08:00
tangbin
7dd0fcf719 aws elb create bugfix 2020-04-17 20:47:47 +08:00
Zexi Li
aed78bbb72 Merge pull request #5821 from swordqiu/automated-cherry-pick-of-#5818-upstream-release-3.1
Automated cherry pick of #5818: fix: non-redfish baremetal might support jnlp console
2020-04-17 00:05:18 +08:00
Zexi Li
ed29d7b702 Merge pull request #5826 from ioito/automated-cherry-pick-of-#5825-upstream-release-3.1
Automated cherry pick of #5825: fix: 尽量避免secgroup重名问题
2020-04-17 00:02:53 +08:00
Zexi Li
2fb625c0f0 Merge pull request #5835 from zhaoxiangchun/automated-cherry-pick-of-#5831-upstream-release-3.1
Automated cherry pick of #5831: 修复azure获取不到监控数据的问题
2020-04-17 00:01:26 +08:00
Zexi Li
62726047e8 Merge pull request #5837 from swordqiu/automated-cherry-pick-of-#5836-upstream-release-3.1
Automated cherry pick of #5836: fix: cas auto create project fetch failure
2020-04-16 23:59:54 +08:00
yunion-ci-robot
1c8285bbd2 Merge pull request #5812 from yousong/automated-cherry-pick-of-#5811-upstream-release-3.1
Automated cherry pick of #5811: region: lbagents: default to using public type endpoint of influxdb
2020-04-16 23:24:05 +08:00
Qiu Jian
0885c45f34 fix: cas auto create project fetch failure 2020-04-16 22:33:20 +08:00
zhaoxiangchun
5e623616d0 修复azure获取不到监控数据的问题 2020-04-16 20:13:21 +08:00
Zexi Li
98dbf2e10b Merge pull request #5806 from ioito/automated-cherry-pick-of-#5805-upstream-release-3.1
Automated cherry pick of #5805: fix: 优化rds sku list查询速度
2020-04-16 18:01:40 +08:00
Zexi Li
aee280b5d7 Merge pull request #5822 from swordqiu/hotfix/qj-update-depecated-by-tag-3.1
update deprecated-by tag for release 3.1
2020-04-16 17:59:41 +08:00
Qu Xuan
7fb48f891d fix: 尽量避免secgroup重名问题 2020-04-16 16:40:44 +08:00
Qiu Jian
a19cdad2f4 change deprecated-by to yunion:deprecated-by 2020-04-16 00:42:20 +08:00
Qiu Jian
175283c94d fix: non-redfish baremetal might support jnlp console 2020-04-15 23:55:58 +08:00
Yousong Zhou
3245626bb7 region: buckets: use identity_apis.EndpointInterfacePublic 2020-04-15 18:03:30 +08:00
Qu Xuan
3a18169f39 fix: 优化rds sku list查询速度 2020-04-15 18:01:50 +08:00
Yousong Zhou
ba79c4c67b image: use identity_apis.EndpointInterfacePublic 2020-04-15 18:01:46 +08:00
Yousong Zhou
08cfb1ee71 region: lbagents: default to using public type endpoint of influxdb 2020-04-15 18:01:46 +08:00
Zexi Li
cc38f00731 Merge pull request #5801 from zexi/automated-cherry-pick-of-#5798-upstream-release-3.1
Automated cherry pick of #5798: climc: support k8s service v3.2
2020-04-15 10:38:02 +08:00
Zexi Li
ca563a3221 climc: support k8s service v3.2 2020-04-15 10:37:05 +08:00
Zexi Li
affd6fb567 Merge pull request #5795 from rainzm/automated-cherry-pick-of-#5794-upstream-release-3.1
Automated cherry pick of #5794: fix(region): Fix the snapshotpolicy info in DiskDetails
2020-04-14 22:41:43 +08:00
Zexi Li
4a3ae9da7f Merge pull request #5796 from swordqiu/feature/qj-cas-user-join-project-3.1
feature: cas user auto join designated project
2020-04-14 16:28:40 +08:00
Rain
d8d04512ba fix(region): Fix the snapshotpolicy info in DiskDetails 2020-04-14 15:41:17 +08:00
Qiu Jian
eac60b484b feature: cas user auto join designated project 2020-04-14 15:40:01 +08:00
Zexi Li
3e170f8a9b Merge pull request #5790 from yousong/automated-cherry-pick-of-#5789-upstream-release-3.1
Automated cherry pick of #5789: proxysetting: fix validating delete condition
2020-04-14 10:45:49 +08:00
Zexi Li
14f66686d9 Merge pull request #5786 from ioito/automated-cherry-pick-of-#5785-upstream-release-3.1
Automated cherry pick of #5785: fix: 避免aliyun access key不可用时返回NotFoundError错误
2020-04-14 10:44:58 +08:00
Yousong Zhou
a3b0b2193c proxysetting: fix validating delete condition 2020-04-13 20:12:53 +08:00
Qu Xuan
af24cbfaa3 fix: 避免aliyun access key不可用时返回NotFoundError错误 2020-04-13 18:49:04 +08:00
Zexi Li
8ef6b60a42 Merge pull request #5779 from swordqiu/automated-cherry-pick-of-#5756-upstream-release-3.1
Automated cherry pick of #5756: fix: 1. allow share proxysetting 2. claim proxsetting as domain resources
2020-04-13 15:45:16 +08:00
Qiu Jian
df00cdbd04 update vendor 2020-04-13 15:27:11 +08:00
Zexi Li
df37a12fc2 Merge pull request #5770 from wanyaoqi/automated-cherry-pick-of-#5769-upstream-release-3.1
Automated cherry pick of #5769: fix host init generate network config
2020-04-13 12:08:44 +08:00
Zexi Li
afc653bb48 Merge pull request #5763 from tb365/automated-cherry-pick-of-#5759-upstream-release-3.1
Automated cherry pick of #5759: aws elb bugfix
2020-04-13 11:27:46 +08:00
Qiu Jian
cae9564f29 update vendor 2020-04-13 11:00:58 +08:00
Qiu Jian
2b45e26243 fix: 1. allow share proxysetting 2. claim proxsetting as domain resources 2020-04-13 11:00:58 +08:00
tangbin
89f6f9985c aws elb bugfix 2020-04-13 10:29:17 +08:00
Zexi Li
daeb7bb144 Merge pull request #5783 from swordqiu/automated-cherry-pick-of-#5780-upstream-release-3.1
Automated cherry pick of #5780: fix: host jnlp request fail for idrac9
2020-04-13 09:49:21 +08:00
Qiu Jian
4fc343f577 fix: host jnlp request fail for idrac9 2020-04-13 00:13:20 +08:00
yunion-ci-robot
35e6f3992a Merge pull request #5775 from ioito/automated-cherry-pick-of-#5774-upstream-release-3.1
Automated cherry pick of #5774: fix: azure重装系统删除不必要的参数
2020-04-12 00:37:53 +08:00
Qu Xuan
b1f320bdd5 fix: azure重装系统删除不必要的参数 2020-04-11 15:10:58 +08:00
Zexi Li
e843eecbd1 Merge pull request #5753 from swordqiu/automated-cherry-pick-of-#5745-upstream-release-3.1
Automated cherry pick of #5745: feature: redfish support IDRAC9 baremetal
2020-04-11 13:12:18 +08:00
Zexi Li
597a9d38ca Merge pull request #5747 from yousong/automated-cherry-pick-of-#5746-upstream-release-3.1
Automated cherry pick of #5746: proxysetting: add class level test action
2020-04-11 13:07:19 +08:00
Zexi Li
03b1a0c0a1 Merge pull request #5766 from yousong/automated-cherry-pick-of-#5765-upstream-release-3.1
Automated cherry pick of #5765: region: lbagent: vrrp.advert_int must be the same inside cluster
2020-04-11 13:05:16 +08:00
Yousong Zhou
168248ef97 region: lbagent: vrrp.advert_int must be the same inside cluster 2020-04-10 15:55:15 +08:00
wanyaoqi
a965ecf107 fix host init generate network config 2020-04-10 15:49:39 +08:00
yunion-ci-robot
e46f6dc0e1 Merge pull request #5741 from yousong/automated-cherry-pick-of-#5740-upstream-release-3.1
Automated cherry pick of #5740: region: lbagents: fix returning error when glob has no match
2020-04-10 09:53:42 +08:00
Qiu Jian
0659981e24 feature: redfish support IDRAC9 baremetal 2020-04-09 22:51:09 +08:00
Yousong Zhou
58db9ddf0f proxysetting: add class level test action 2020-04-09 17:38:47 +08:00
Yousong Zhou
7e2a369fae region: lbagents: fix returning error when glob has no match 2020-04-09 11:08:03 +08:00
Zexi Li
d07d8f9652 Merge pull request #5730 from tb365/automated-cherry-pick-of-#5726-upstream-release-3.1
Automated cherry pick of #5726: huawei&qcloud&huawei elb bugfix
2020-04-08 21:54:00 +08:00
Zexi Li
367e92858f Merge pull request #5736 from swordqiu/automated-cherry-pick-of-#5733-upstream-release-3.1
Automated cherry pick of #5733: fix: idp log connected/disconnected event
2020-04-08 21:51:48 +08:00
Qiu Jian
251639353d fix: idp log connected/disconnected event 2020-04-08 21:27:04 +08:00
tangbin
e8ef3ab74e huawei&qcloud&huawei elb bugfix 2020-04-08 20:12:28 +08:00
Zexi Li
6e8a97b995 Merge pull request #5725 from yousong/automated-cherry-pick-of-#5724-upstream-release-3.1
Automated cherry pick of #5724: lbagents: deploy: deploy public type auth_url
2020-04-08 19:45:34 +08:00
Yousong Zhou
721b80e2fe climc: networks: remove stale dns related commands 2020-04-08 18:09:49 +08:00
Yousong Zhou
3d705eee3f climc: fix router-route-xx command description 2020-04-08 18:09:49 +08:00
Yousong Zhou
799b7eacb7 climc: add command proxysetting-test 2020-04-08 18:09:49 +08:00
Yousong Zhou
7f9bb72ce3 proxysetting: add test api 2020-04-08 18:09:48 +08:00
Yousong Zhou
860030929d apis: proxy: fix sanitizing empty proxy string 2020-04-08 18:09:48 +08:00
Yousong Zhou
1914e2b054 climc: proxysetting-update: fix update option 2020-04-08 18:09:48 +08:00
Yousong Zhou
fdfe3bb374 db_dispatcher: default action log for create & update 2020-04-08 18:09:48 +08:00
Yousong Zhou
b1c84895e5 lbagents: deploy: deploy public type auth_url 2020-04-08 18:09:48 +08:00
Zexi Li
e8ce6da148 Merge pull request #5717 from swordqiu/automated-cherry-pick-of-#5714-upstream-release-3.1
Automated cherry pick of #5714: fix: decouple getUserInfo at apigateway from capabilities call
2020-04-08 02:26:23 +08:00
Qiu Jian
b29d752647 fix: decouple getUserInfo at apigateway from capabilities call 2020-04-08 00:06:00 +08:00
Zexi Li
ddda51d272 Merge pull request #5699 from swordqiu/automated-cherry-pick-of-#5698-upstream-release-3.1
Automated cherry pick of #5698: fix: service config changes not effective
2020-04-07 10:38:30 +08:00
Zexi Li
1574970148 Merge pull request #5705 from wanyaoqi/automated-cherry-pick-of-#5704-upstream-release-3.1
Automated cherry pick of #5704: fix migrate cache cdrom
2020-04-07 10:37:20 +08:00
wanyaoqi
f96e632384 fix migrate cache cdrom 2020-04-06 23:17:15 +08:00
Qiu Jian
41bf5a1c17 fix: service config changes not effective 2020-04-06 16:09:00 +08:00
Zexi Li
1f645f550a Merge pull request #5693 from rainzm/automated-cherry-pick-of-#5691-upstream-release-3.1
Automated cherry pick of #5691: fix(esxi): Fix some question of CheckAndSetCacheImage.
2020-04-05 13:53:32 +08:00
Zexi Li
72bf32b8db Merge pull request #5697 from swordqiu/automated-cherry-pick-of-#5694-upstream-release-3.1
Automated cherry pick of #5694: fix: misc bugs in usage data
2020-04-05 13:52:32 +08:00
Qiu Jian
93e7780d1d fix: misc bugs in usage data 2020-04-05 08:06:42 +08:00
Rain
3ad7ac7e18 fix(esxi): Fix some question of CheckAndSetCacheImage.
1. If there is storagecachedimage in this host's storagecache, use is
instead of another host's one.
2. SrcStorage should be found from srcHost instead host.
2020-04-04 21:54:14 +08:00
Zexi Li
888c527fa9 Merge pull request #5687 from ioito/automated-cherry-pick-of-#5686-upstream-release-3.1
Automated cherry pick of #5686: fix: 修复重装系统时未能更换指定image问题
2020-04-03 19:43:23 +08:00
Zexi Li
f577998f60 Merge pull request #5672 from ioito/automated-cherry-pick-of-#5671-upstream-release-3.1
Automated cherry pick of #5671: fix: 华为云rds使用自身的存储类型
2020-04-03 19:41:39 +08:00
Zexi Li
57fe0a05af Merge pull request #5683 from ioito/automated-cherry-pick-of-#5682-upstream-release-3.1
Automated cherry pick of #5682: fix: typo
2020-04-03 11:35:53 +08:00
Qu Xuan
dcfe21a5ee fix: 修复重装系统时未能更换指定image问题 2020-04-03 11:35:29 +08:00
Qu Xuan
0c3fe7e440 fix: typo 2020-04-02 20:23:15 +08:00
yunion-ci-robot
1452c4d817 Merge pull request #5681 from yousong/bugfix/yousong-cloudaccount-ps-3.1
[3.1] cloudaccounts: update: make proxy_setting optional
2020-04-02 19:25:49 +08:00
Zexi Li
d9c7f08c74 Merge pull request #5677 from wanyaoqi/automated-cherry-pick-of-#5676-upstream-release-3.1
Automated cherry pick of #5676: host do not set hostname
2020-04-02 19:07:21 +08:00
yunion-ci-robot
f33b779c24 Merge pull request #5680 from ioito/automated-cherry-pick-of-#5679-upstream-release-3.1
Automated cherry pick of #5679: fix: typo
2020-04-02 18:54:51 +08:00
yunion-ci-robot
05405def86 Merge pull request #5668 from ioito/automated-cherry-pick-of-#5667-upstream-release-3.1
Automated cherry pick of #5667: fix: 修复更新qcloud sdk引出的不兼容问题
2020-04-02 18:51:50 +08:00
Yousong Zhou
644d1a0056 cloudaccounts: update: make proxy_setting optional 2020-04-02 18:41:10 +08:00
Qu Xuan
5b50b77c13 fix: typo 2020-04-02 18:26:40 +08:00
wanyaoqi
9a836d37b5 host do not set hostname 2020-04-02 18:11:40 +08:00
yunion-ci-robot
cc8ca3656d Merge pull request #5670 from zexi/automated-cherry-pick-of-#5669-upstream-release-3.1
Automated cherry pick of #5669: climc: k8s remove registrysecret create command
2020-04-02 18:09:49 +08:00
Qu Xuan
6a7e1ccaf4 fix: 华为云rds使用自身的存储类型 2020-04-02 17:29:42 +08:00
Zexi Li
2423107c23 climc: k8s remove registrysecret create command 2020-04-02 16:31:18 +08:00
Qu Xuan
f80a0c2a2e fix: 修复更新qcloud sdk引出的不兼容问题 2020-04-02 15:56:51 +08:00
Zexi Li
5c38e6935e Merge pull request #5639 from tb365/automated-cherry-pick-of-#5631-upstream-release-3.1
Automated cherry pick of #5631: elb bugfix
2020-04-02 12:47:42 +08:00
Zexi Li
908c7c2d81 Merge pull request #5664 from swordqiu/automated-cherry-pick-of-#5662-upstream-release-3.1
Automated cherry pick of #5662: fix: disk/nics usage should exclude those pending_deleted
2020-04-02 12:45:43 +08:00
Zexi Li
fd8ee54deb Merge pull request #5657 from yousong/automated-cherry-pick-of-#5652-upstream-release-3.1
Automated cherry pick of #5652: proxysetting: forbid deletion of DIRECT setting
2020-04-02 12:44:05 +08:00
Zexi Li
1b98d99905 Merge pull request #5660 from wanyaoqi/automated-cherry-pick-of-#5659-upstream-release-3.1
Automated cherry pick of #5659: host session use internal endpoint
2020-04-02 12:43:16 +08:00
Qiu Jian
f423eb9011 fix: disk/nics usage should exclude those pending_deleted 2020-04-02 01:53:14 +08:00
tangbin
0ee58ec243 elb bugfix 2020-04-01 20:30:48 +08:00
wanyaoqi
a3318a87c0 host session use internal endpoint 2020-04-01 20:00:59 +08:00
Zexi Li
40bc2e3ae1 Merge pull request #5656 from swordqiu/automated-cherry-pick-of-#5653-upstream-release-3.1
Automated cherry pick of #5653: fix: allow list cloudprovider by default
2020-04-01 18:14:00 +08:00
Yousong Zhou
ef7674af30 proxysetting: validate create/update data 2020-04-01 18:13:00 +08:00
Yousong Zhou
fa8e8e555e apis: proxy: add input validation 2020-04-01 18:13:00 +08:00
Zexi Li
2e167d8599 Merge pull request #5649 from swordqiu/automated-cherry-pick-of-#5648-upstream-release-3.1
Automated cherry pick of #5648: fix: cancel pending usage might not need to update usage
2020-04-01 18:11:08 +08:00
Yousong Zhou
19f4328ed1 cloudaccount: provide proxysetting details 2020-04-01 18:07:48 +08:00
Qiu Jian
62d009f2f8 fix: allow list cloudprovider by default 2020-04-01 17:48:12 +08:00
Yousong Zhou
2718d7bf4e proxysetting: forbid deletion of DIRECT setting 2020-04-01 17:16:13 +08:00
Qiu Jian
007566c4b5 fix: cancel pending usage might not need to update usage 2020-04-01 16:43:49 +08:00
Zexi Li
5bcc2a4298 Merge pull request #5647 from ioito/automated-cherry-pick-of-#5646-upstream-release-3.1
Automated cherry pick of #5646: 修复: 默认存在的bucket状态为ready
2020-04-01 16:41:30 +08:00
Qu Xuan
3913a71f5c 修复: 默认存在的bucket状态为ready 2020-04-01 15:18:58 +08:00
Zexi Li
f4fb2b55a2 Merge pull request #5645 from zexi/automated-cherry-pick-of-#5644-upstream-release-3.1
Automated cherry pick of #5644: monitor: add paused api
2020-04-01 13:45:43 +08:00
Zexi Li
071f919d1e monitor: add paused api 2020-04-01 13:42:59 +08:00
Zexi Li
59309efd8c Merge pull request #5638 from yousong/feature/yousong-multicloud-proxyfunc-3.1
Feature/yousong multicloud proxyfunc 3.1
2020-04-01 10:24:35 +08:00
Zexi Li
7a64637e14 Merge pull request #5641 from swordqiu/automated-cherry-pick-of-#5640-upstream-release-3.1
Automated cherry pick of #5640: fix: changes to request_work_count cause apigateway restart
2020-04-01 10:23:25 +08:00
Qiu Jian
f4baf1761a fix: changes to request_work_count cause apigateway restart 2020-04-01 10:19:33 +08:00
Yousong Zhou
f8dc741763 cloudcommon: proxysetting: make it domainized 2020-03-31 18:59:27 +08:00
Zexi Li
1739d4f805 Merge pull request #5633 from zexi/automated-cherry-pick-of-#5632-upstream-release-3.1
Automated cherry pick of #5632: monitor: support support extra params in alertnotification joint object
2020-03-31 18:36:10 +08:00
Zexi Li
c681805629 monitor: support support extra params in alertnotification joint object 2020-03-31 17:58:13 +08:00
Zexi Li
2f4e7d585e Merge pull request #5630 from zexi/automated-cherry-pick-of-#5629-upstream-release-3.1
Automated cherry pick of #5629: monitor: add alert config helper
2020-03-31 16:45:32 +08:00
Zexi Li
d3c3a201b8 monitor: add alert config helper 2020-03-31 16:43:04 +08:00
Zexi Li
9933db70a3 Merge pull request #5625 from wanyaoqi/automated-cherry-pick-of-#5624-upstream-release-3.1
Automated cherry pick of #5624: - add check disk is enable delete - vm enable detach network on running state - add menu on boot from iso - misc fix
2020-03-31 16:24:51 +08:00
yunion-ci-robot
624acc21f9 Merge pull request #5626 from swordqiu/automated-cherry-pick-of-#5623-upstream-release-3.1
Automated cherry pick of #5623: fix: worker may block by worker_chan
2020-03-31 10:03:44 +08:00
Qiu Jian
f361618f06 fix: worker may block by worker_chan 2020-03-31 09:51:33 +08:00
wanyaoqi
790f9fc1a3 vm online detach network 2020-03-30 21:30:44 +08:00
wanyaoqi
e86909c43a - add check disk is enable delete - vm enable detach network on running state - add menu on boot from iso - misc fix 2020-03-30 21:30:44 +08:00
Zexi Li
9085ee9775 Merge pull request #5620 from swordqiu/automated-cherry-pick-of-#5616-upstream-release-3.1
Automated cherry pick of #5616: fix: increase apigateway default worker count to 32
2020-03-30 19:22:44 +08:00
Qiu Jian
34c7a31106 fix: increase apigateway default worker count to 32 2020-03-30 19:08:11 +08:00
yunion-ci-robot
52bbe4d74e Merge pull request #5618 from zexi/automated-cherry-pick-of-#5617-upstream-release-3.1
Automated cherry pick of #5617: action: add region dns image
2020-03-30 15:10:44 +08:00
Zexi Li
2190de3e77 action: add region dns image 2020-03-30 15:05:55 +08:00
Zexi Li
d58e8f3b67 Merge pull request #5607 from yousong/automated-cherry-pick-of-#5606-upstream-release-3.1
Automated cherry pick of #5606: region: lbagent: move systemd service unit file to system dir
2020-03-28 10:29:33 +08:00
yunion-ci-robot
a431d7ca20 Merge pull request #5612 from swordqiu/automated-cherry-pick-of-#5608-upstream-release-3.1
Automated cherry pick of #5608: fix: allow list loadbalancer cluster by default
2020-03-28 09:47:41 +08:00
Qiu Jian
8fed2fc64b fix: allow list loadbalancer cluster by default 2020-03-28 09:05:28 +08:00
Yousong Zhou
68900b3fab region: lbagent: move systemd service unit file to system dir 2020-03-27 15:32:11 +08:00
Zexi Li
4ddb4e14a5 Merge pull request #5602 from ioito/automated-cherry-pick-of-#5601-upstream-release-3.1
Automated cherry pick of #5601: fix: 修正gcp不支持预付费资源
2020-03-26 20:33:08 +08:00
Qu Xuan
1c9a926247 fix: 修正gcp不支持预付费资源 2020-03-26 20:01:37 +08:00
Zexi Li
0ac45d9ff7 Merge pull request #5591 from yousong/feature/yousong-backport-proxyfunc
Feature/yousong backport proxyfunc
2020-03-26 10:41:11 +08:00
Yousong Zhou
45a4848808 climc: add cloud-account-update-google 2020-03-25 17:34:16 +08:00
Yousong Zhou
0fb6de4d80 cloudaccounts: fix checking update data 2020-03-25 17:34:16 +08:00
Yousong Zhou
1bcd3dcab6 mcclient: cloudaccounts: allow updating proxysetting 2020-03-25 17:34:16 +08:00
Yousong Zhou
291230694d mcclient: add proxysettings manager 2020-03-25 17:33:24 +08:00
Yousong Zhou
140ac46e67 cloudevent: use cloudprovider proxysetting 2020-03-25 17:33:24 +08:00
Yousong Zhou
0e5f5221f0 region: refer to proxySetting 2020-03-25 17:33:24 +08:00
Yousong Zhou
5813d64a7d cloudcommon: proxysetting: referrerMen 2020-03-25 17:33:24 +08:00
Yousong Zhou
6444825331 cloudevent: add proxy.ProxySettingManager 2020-03-25 17:33:24 +08:00
Yousong Zhou
adfad567f6 s3gateway: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
cf7c63be3f region: add cloudaccount.ProxySettingId 2020-03-25 17:33:24 +08:00
Yousong Zhou
1d78192a36 cloudprovider: add TestProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
462b832e1a objectstore: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
06fad05278 objectstore: use ObjectStoreClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
1695947221 esxi: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
4c40e3bf40 esxi: use ESXiClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
4f270a3ff0 openstack: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
6a7382f5be mcclient: add SetHttpTransportProxyFunc() 2020-03-25 17:33:24 +08:00
Yousong Zhou
a7cff31e3c openstack: use OpenstackClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
874699a1d7 zstack: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
c3c5b0b156 zstack: use ZstackClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
22bc479420 zstack: remove sessionID field 2020-03-25 17:33:24 +08:00
Yousong Zhou
64387f83d8 ucloud: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
b4438122f9 ucloud: use UcloudClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
11ee270911 qcloud: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
70b78835d3 qcloud: use QcloudClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
0faa2bfb9c vendor: update github.com/tencentcloud/tencentcloud-sdk-go 2020-03-25 17:33:24 +08:00
Yousong Zhou
991b3bb5cf huawei: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
608a18eed4 huawei: client: add SBaseManager.SetHttpClient() 2020-03-25 17:33:24 +08:00
Yousong Zhou
292ca54153 huawei: use HuaweiClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
a157596973 azure: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
23bc582407 azure: use AzureClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
cfe5b990f9 aws: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
58f6f37891 aws: use AwsClientConfig 2020-03-25 17:33:24 +08:00
Yousong Zhou
5ab5fbdf92 ctyun: use cpcfg.ProxyFunc 2020-03-25 17:33:24 +08:00
Yousong Zhou
374d15b701 ctyun: use CtyunClientConfig 2020-03-25 17:33:23 +08:00
Yousong Zhou
e57dcee3e4 google: use cpcfg.ProxyFunc 2020-03-25 17:33:23 +08:00
Yousong Zhou
01ca954399 google: use GoogleClientConfig 2020-03-25 17:33:23 +08:00
Yousong Zhou
7da2fa556c aliyun: use cpcfg.ProxyFunc 2020-03-25 17:17:29 +08:00
Yousong Zhou
4c50f40771 aliyun clientcfg 2020-03-25 17:17:29 +08:00
Yousong Zhou
85a9d51e58 httputils: add SetClientProxyFunc(client, proxyFunc) 2020-03-25 17:17:29 +08:00
Yousong Zhou
8009857c8a cloudprovider: use ProviderConfig 2020-03-25 17:16:35 +08:00
Yousong Zhou
e2826b1338 cloudcommon: add ProxySetting 2020-03-25 17:15:47 +08:00
Zexi Li
7e88a79a8d Merge pull request #5582 from yousong/automated-cherry-pick-of-#5581-upstream-release-3.1
Automated cherry pick of #5581: webconsole: typo fix accessable -> accessible
2020-03-23 21:14:18 +08:00
Yousong Zhou
51f0ff4d9c httperrors: fix passing "params" argument 2020-03-23 16:41:13 +08:00
Yousong Zhou
bd922dfe14 webconsole: typo fix accessable -> accessible 2020-03-23 16:41:13 +08:00
Zexi Li
096ce97503 Merge pull request #5578 from zexi/automated-cherry-pick-of-#5577-upstream-release-3.1
Automated cherry pick of #5577: climc: k8s storageclass support
2020-03-23 10:53:03 +08:00
Zexi Li
336b8fa6f9 Merge pull request #5570 from yousong/automated-cherry-pick-of-#5569-upstream-release-3.1
Automated cherry pick of #5569: build: cache-aware docker-xxx-build
2020-03-23 10:52:32 +08:00
Zexi Li
499be25fc0 climc: k8s storageclass support 2020-03-23 10:52:07 +08:00
Zexi Li
4ec48d5a66 Merge pull request #5568 from tb365/automated-cherry-pick-of-#5567-upstream-release-3.1
Automated cherry pick of #5567: ctyun bugfix
2020-03-20 19:39:58 +08:00
Zexi Li
b7861f5341 Merge pull request #5572 from wanyaoqi/automated-cherry-pick-of-#5571-upstream-release-3.1
Automated cherry pick of #5571: guest add metadata cpu mode
2020-03-20 19:39:27 +08:00
wanyaoqi
c2a82bd9cd guest add metadata cpu mode
- live migrate if guest cpu mode is qemu, do not check host cpu mode
- disk name generation replace '_' to '-'
2020-03-20 15:10:47 +08:00
Yousong Zhou
ee8b23bdc7 scripts: remove host_find_libraries.sh
Not needed after we switch to using native alpine image
2020-03-20 14:44:51 +08:00
Yousong Zhou
1b3979fb97 build: cache-aware docker-xxx-build 2020-03-20 14:44:51 +08:00
tangbin
26ac56c1a6 ctyun bugfix 2020-03-20 10:30:48 +08:00
Zexi Li
1833456c45 Merge pull request #5556 from rainzm/automated-cherry-pick-of-#5555-upstream-release-3.1
Automated cherry pick of #5555: feat(notify): Compatibility and repair
2020-03-19 10:05:59 +08:00
yunion-ci-robot
50dc428692 Merge pull request #5491 from ioito/automated-cherry-pick-of-#5490-upstream-release-3.1
Automated cherry pick of #5490: fix: class action 统一使用keywords包裹
2020-03-19 08:48:20 +08:00
Rain
d403d6d62f feat(notify): Compatibility and repair 2020-03-18 20:54:18 +08:00
Zexi Li
8fca2c7c8f Merge pull request #5546 from swordqiu/automated-cherry-pick-of-#5545-upstream-release-3.1
Automated cherry pick of #5545: fix: policy fetcher not retry after initial failure
2020-03-18 10:53:12 +08:00
Qu Xuan
5dac5a465b fix: class action 统一使用keywords包裹 2020-03-17 18:44:10 +08:00
Qiu Jian
f3c9ad15da fix: policy fetcher not retry after initial failure 2020-03-17 18:30:29 +08:00
Zexi Li
12040bd5aa Merge pull request #5544 from ioito/automated-cherry-pick-of-#5543-upstream-release-3.1
Automated cherry pick of #5543: fix: 避免dbinstance_sku.get 异常
2020-03-17 17:20:08 +08:00
Qu Xuan
6367d20757 fix: 避免dbinstance_sku.get 异常 2020-03-17 17:04:13 +08:00
Zexi Li
4dbbb2b1b5 Merge pull request #5542 from zexi/automated-cherry-pick-of-#5541-upstream-release-3.1
Automated cherry pick of #5541: monitor: fix meteralert update status
2020-03-17 14:59:32 +08:00
Zexi Li
7a756c5766 monitor: fix meteralert update status 2020-03-17 15:00:45 +08:00
Zexi Li
ce7212a798 Merge pull request #5507 from swordqiu/automated-cherry-pick-of-#5506-upstream-release-3.1
Automated cherry pick of #5506: fix: recode cloudprovider usable filter
2020-03-17 11:39:47 +08:00
yunion-ci-robot
e0c6ea920d Merge pull request #5530 from ioito/automated-cherry-pick-of-#5529-upstream-release-3.1
Automated cherry pick of #5529: fix: 避免重装系统失败后imageId依然发生改变
2020-03-17 08:22:14 +08:00
yunion-ci-robot
892b769d3a Merge pull request #5537 from ioito/automated-cherry-pick-of-#5536-upstream-release-3.1
Automated cherry pick of #5536: fix: 修复谷歌云 cloud-provider-clirc 显示错误问题
2020-03-17 08:13:14 +08:00
Qu Xuan
0f31a7d479 fix: 修复谷歌云 cloud-provider-clirc 显示错误问题 2020-03-16 20:09:43 +08:00
yunion-ci-robot
cafc8dedc7 Merge pull request #5524 from ioito/automated-cherry-pick-of-#5452-upstream-release-3.1
Automated cherry pick of #5452: fix: 优化rds sku同步逻辑
2020-03-16 15:25:14 +08:00
Zexi Li
5f168a76af Merge pull request #5518 from swordqiu/automated-cherry-pick-of-#5517-upstream-release-3.1
Automated cherry pick of #5517: fix: storage details missing capacity fields since 3.1
2020-03-16 13:00:59 +08:00
Zexi Li
985b56353b Merge pull request #5500 from zhaoxiangchun/automated-cherry-pick-of-#5496-upstream-release-3.1
Automated cherry pick of #5496: vmware 宿主机监控信息获取
2020-03-16 12:57:33 +08:00
Qu Xuan
0570476c5c fix: 避免重装系统失败后imageId依然发生改变 2020-03-16 11:29:44 +08:00
Qu Xuan
2d641b4e30 fix: 优化rds sku同步逻辑 2020-03-16 10:33:38 +08:00
yunion-ci-robot
3bc58d2c8e Merge pull request #5520 from ioito/automated-cherry-pick-of-#5519-upstream-release-3.1
Automated cherry pick of #5519: fix: 避免未传递prority参数导致校验未通过
2020-03-16 09:09:13 +08:00
Qu Xuan
4b472cfd30 fix: 避免未传递prority参数导致校验未通过 2020-03-15 13:12:44 +08:00
Qiu Jian
04e79b5140 fix: storage details missing capacity fields since 3.1 2020-03-14 22:02:29 +08:00
yunion-ci-robot
7435c8bc29 Merge pull request #5515 from zexi/automated-cherry-pick-of-#5511-upstream-release-3.1
Automated cherry pick of #5511: scheduler: fix disk allocated not balanced
2020-03-14 17:50:05 +08:00
Zexi Li
8031105ea2 scheduler: fix disk allocated not balanced 2020-03-14 16:51:45 +08:00
Qiu Jian
d7fd2b7d8c fix: recode cloudprovider usable filter 2020-03-14 09:04:32 +08:00
Zexi Li
2f50aae082 Merge pull request #5502 from zexi/automated-cherry-pick-of-#5501-upstream-release-3.1
Automated cherry pick of #5501: auth: check isAuthed if nil
2020-03-13 19:18:18 +08:00
Zexi Li
4ec8b1f523 auth: check isAuthed if nil 2020-03-13 19:19:11 +08:00
zhaoxiangchun
2c97fdaf46 vmware 宿主机监控信息获取 2020-03-13 17:23:35 +08:00
yunion-ci-robot
ed06f6ed84 Merge pull request #5475 from rainzm/automated-cherry-pick-of-#5454-upstream-release-3.1
Automated cherry pick of #5454: fix(glance): Structured subimage info and add 'created_at' field
2020-03-13 15:44:02 +08:00
yunion-ci-robot
6e29509da4 Merge pull request #5486 from wanyaoqi/automated-cherry-pick-of-#5484-upstream-release-3.1
Automated cherry pick of #5484: download handler set no timeout
2020-03-13 14:33:02 +08:00
wanyaoqi
9a3df26dc1 download handler set no timeout 2020-03-13 11:40:18 +08:00
Zexi Li
9b335e2afa Merge pull request #5485 from rainzm/automated-cherry-pick-of-#5479-upstream-release-3.1
Automated cherry pick of #5479: fix(scheduler): Candidater's CloudProvider maybe nil
2020-03-13 11:28:05 +08:00
Rain
8ebb409ef3 fix(scheduler): Candidater's CloudProvider maybe nil
Candidater(Host) in Provider Onecloud doesn't have CloudProvider.
2020-03-13 11:26:42 +08:00
Zexi Li
61757b8e8a Merge pull request #5481 from rainzm/automated-cherry-pick-of-#5480-upstream-release-3.1
Automated cherry pick of #5480: fix(esxi): VlanID '1' is default value
2020-03-13 11:11:18 +08:00
Zexi Li
67b8fa74f3 Merge pull request #5474 from zhaoxiangchun/automated-cherry-pick-of-#5472-upstream-release-3.1
Automated cherry pick of #5472: 修复meteralartbug
2020-03-13 00:44:21 +08:00
Rain
bc72a0c172 fix(esxi): VlanID '1' is default value 2020-03-12 20:58:36 +08:00
yunion-ci-robot
49d73df622 Merge pull request #5469 from zexi/automated-cherry-pick-of-#5458-upstream-release-3.1
Automated cherry pick of #5458: region: baremetal convert host join as k8s node
2020-03-12 20:51:15 +08:00
Rain
a9c1a9c5a4 fix(glance): Structured subimage info and add 'created_at' field 2020-03-12 19:27:10 +08:00
yunion-ci-robot
653eaf019e Merge pull request #5471 from wanyaoqi/automated-cherry-pick-of-#5470-upstream-release-3.1
Automated cherry pick of #5470: region misc fix
2020-03-12 17:34:15 +08:00
zhaoxiangchun
df443d9593 修复meteralartbug
1.设置消费日提醒时,提示名称重复。
2.查询信息时MeterAlertDetails的一些字段没有回显。
2020-03-12 17:29:27 +08:00
wanyaoqi
51216bdc80 region misc fix 2020-03-12 16:49:22 +08:00
Zexi Li
3c7917425b region: baremetal convert host join as k8s node 2020-03-12 16:32:20 +08:00
Zexi Li
0dd7604d6a Merge pull request #5462 from bistuzx/automated-cherry-pick-of-#5459-upstream-release-3.1
Automated cherry pick of #5459: add bucket connection test
2020-03-12 16:20:31 +08:00
张旭
eb72141e52 change climc bucket options import 2020-03-12 12:27:08 +08:00
张旭
235aba14f4 add bucket connection test 2020-03-12 12:27:08 +08:00
Zexi Li
e81dc6c36d Merge pull request #5466 from rainzm/feat/vendor_3.1
feat: Update Vendor for release/3.1
2020-03-12 12:07:26 +08:00
Rain
5edd07e805 feat: Update Vendor for release/3.1 2020-03-12 11:53:22 +08:00
yunion-ci-robot
7139672f63 Merge pull request #5446 from rainzm/automated-cherry-pick-of-#5444-upstream-release-3.1
Automated cherry pick of #5444: fix(esxi): UnitNumber 7 is unavailable for scsi controller
2020-03-12 02:51:02 +08:00
yunion-ci-robot
926cabd695 Merge pull request #5441 from rainzm/automated-cherry-pick-of-#5439-upstream-release-3.1
Automated cherry pick of #5439: fix(esxi): Fix bugs when using network with vlanID
2020-03-12 02:46:02 +08:00
yunion-ci-robot
e28cb2edcc Merge pull request #5456 from wanyaoqi/automated-cherry-pick-of-#5455-upstream-release-3.1
Automated cherry pick of #5455: fix structure host storage output: storagecache_id
2020-03-12 02:45:01 +08:00
wanyaoqi
bf9c9251f9 fix structure host storage output: storagecache_id 2020-03-11 18:09:02 +08:00
Zexi Li
4fc93016dd Merge pull request #5448 from zexi/automated-cherry-pick-of-#5447-upstream-release-3.1
Automated cherry pick of #5447: region: host update storage set enabled
2020-03-11 15:58:23 +08:00
Zexi Li
3b29ecb087 region: host update storage set enabled 2020-03-11 15:58:32 +08:00
Rain
6b6c965299 fix(esxi): UnitNumber 7 is unavailable for scsi controller
By default, the virtual SCSI controller is assigned to virtual device node (z:7),
so that device node is unavailable for hard disks or other devices.
https://docs.vmware.com/en/VMware-vSphere/6.7/com.vmware.vsphere.vm_admin.doc/GUID-5872D173-A076-42FE-8D0B-9DB0EB0E7362.html
2020-03-11 15:19:16 +08:00
Rain
bdb9929628 fix(esxi): Fix bugs when using network with vlanID 2020-03-11 11:03:15 +08:00
yunion-ci-robot
4a04405b5d Merge pull request #5438 from zexi/automated-cherry-pick-of-#5437-upstream-release-3.1
Automated cherry pick of #5437: climc: add server and host ssh terminal util
2020-03-10 18:50:58 +08:00
Zexi Li
ff27373bb2 climc: add server and host ssh terminal util 2020-03-10 18:24:37 +08:00
Zexi Li
9bad7f3485 Merge pull request #5420 from swordqiu/automated-cherry-pick-of-#5419-upstream-release-3.1
Automated cherry pick of #5419: fix: fail to find esxi admin vnic, use vnic with default IPv4 route
2020-03-10 14:45:05 +08:00
yunion-ci-robot
0eb4468c79 Merge pull request #5430 from ioito/automated-cherry-pick-of-#5429-upstream-release-3.1
Automated cherry pick of #5429: fix: typo for sku sync
2020-03-10 11:15:58 +08:00
yunion-ci-robot
d8b614bbdf Merge pull request #5428 from rainzm/automated-cherry-pick-of-#5424-upstream-release-3.1
Automated cherry pick of #5424: fix(esxi): Add two account with same account name
2020-03-10 11:01:59 +08:00
Qu Xuan
776438f682 fix: typo for sku sync 2020-03-09 19:58:42 +08:00
Rain
321e54def0 fix(esxi): Add two account with same account name 2020-03-09 17:59:25 +08:00
Qiu Jian
0f0bb35170 fix: fail to find esxi admin vnic, use vnic with default IPv4 route 2020-03-09 15:57:37 +08:00
Zexi Li
7b0ceddd6b Merge pull request #5415 from zexi/automated-cherry-pick-of-#5414-upstream-release-3.1
Automated cherry pick of #5414: opslog: notes use text column
2020-03-09 12:36:39 +08:00
Zexi Li
e2fafe2b46 Merge pull request #5399 from swordqiu/automated-cherry-pick-of-#5398-upstream-release-3.1
Automated cherry pick of #5398: fix: not check domain quota if non_default_domain_project is off
2020-03-09 12:31:49 +08:00
Zexi Li
f396592d2e opslog: notes use text column 2020-03-09 12:30:56 +08:00
Zexi Li
18fca8d90b Merge pull request #5404 from swordqiu/automated-cherry-pick-of-#5403-upstream-release-3.1
Automated cherry pick of #5403: fix: cloudprovider performEnable should also enable its cloudaccount
2020-03-09 12:30:27 +08:00
Zexi Li
7c85b20733 Merge pull request #5409 from swordqiu/automated-cherry-pick-of-#5408-upstream-release-3.1
Automated cherry pick of #5408: feature: climc docker image add vim
2020-03-09 09:27:53 +08:00
Qiu Jian
48c0c536fc feature: climc docker image add vim 2020-03-08 22:47:05 +08:00
Qiu Jian
188662cd51 fix: cloudprovider performEnable should also enable its cloudaccount 2020-03-08 16:06:26 +08:00
Qiu Jian
dd01e8cf49 fix: not check domain quota if non_default_domain_project is off 2020-03-07 18:16:47 +08:00
Zexi Li
ca7f5495fe Merge pull request #5393 from swordqiu/automated-cherry-pick-of-#5392-upstream-release-3.1
Automated cherry pick of #5392: fix: scoped resource should override FetchOwnerId
2020-03-07 15:51:52 +08:00
Qiu Jian
34b7d1e9c3 fix: scoped resource should override FetchOwnerId 2020-03-07 15:38:46 +08:00
Zexi Li
13a3e1c778 Merge pull request #5389 from swordqiu/automated-cherry-pick-of-#5388-upstream-release-3.1
Automated cherry pick of #5388: fix: keystone prefers internal endpoint type
2020-03-07 11:07:29 +08:00
Qiu Jian
603b3f8b8e fix: keystone prefers internal endpoint type 2020-03-06 21:45:21 +08:00
yunion-ci-robot
2c1e0a4fe2 Merge pull request #5383 from rainzm/automated-cherry-pick-of-#5378-upstream-release-3.1
Automated cherry pick of #5378: fix: Add 'scope=system' and 'system' for Caches when querying from Keystone.
2020-03-06 19:19:52 +08:00
Zexi Li
f9a9f92003 Merge pull request #5373 from swordqiu/automated-cherry-pick-of-#5372-upstream-release-3.1
Automated cherry pick of #5372: fix: no scope shcedtag should be visible to all
2020-03-06 18:32:28 +08:00
yunion-ci-robot
8d1c0ba9c9 Merge pull request #5382 from tb365/automated-cherry-pick-of-#5379-upstream-release-3.1
Automated cherry pick of #5379: huawei reset password bugfix
2020-03-06 18:10:50 +08:00
Rain
845ba285fc fix: Add 'scope=system' and 'system' for Caches when querying from Keystone.
1. Query 'scope=system' and 'system=true' is neccessary when fetching all users
   or groups from Keystone.
   Without these, users and groups in other domains (non-caller domains),
   as well as system-level users, cannot be detected.
2. Query 'scope=system' is neccessary when fetching all project from Keystone.
2020-03-06 17:15:23 +08:00
TangBin
72f1e58833 ctyun region name fix 2020-03-06 16:52:53 +08:00
TangBin
1cc1ff7213 huawei reset password bugfix 2020-03-06 16:52:53 +08:00
Qiu Jian
6c15c80abb fix: no scope shcedtag should be visible to all 2020-03-06 15:23:27 +08:00
Yousong Zhou
7869e3d134 Merge pull request #5371 from yousong/automated-cherry-pick-of-#5226-upstream-release-3.1
Automated cherry pick of #5226: lbbackend: fix nil ref when getting details
2020-03-06 13:38:43 +08:00
Yousong Zhou
2e0efc6c4a lbbackend: fix nil ref when getting details
Return arguments of lbbackend.getVpc() can be both nil

	[E 200224 10:13:18 httperrors.HTTPError(httperrors.go:53)] Send error {"fields":["runtime error: invalid memory address or nil pointer dereference"],"id":"Internal server error: {0}"}
	...
	panic(0x27da0c0, 0x57f4ff0)
		/usr/local/go/src/runtime/panic.go:522 +0x1b5
	yunion.io/x/onecloud/pkg/compute/models.(*SLoadbalancerBackend).GetExtraDetails(0xc0002af680, 0x33cde20, 0xc0010e61e0, 0x34246c0, 0xc008893de0, 0x341d940, 0xc012fe69d0, 0x1, 0x0, 0x0, ...)
		/data/git/yunion-build/work/go/src/yunion.io/x/onecloud/pkg/compute/models/loadbalancerbackends.go:314 +0x37c
	reflect.Value.call(0x2d87a00, 0xc0002af680, 0x8a13, 0x2db0aa8, 0x4, 0xc0044ad680, 0x4, 0x4, 0x2bd5d60, 0xc002a29cf0, ...)
		/usr/local/go/src/reflect/value.go:447 +0x461
	reflect.Value.Call(0x2d87a00, 0xc0002af680, 0x8a13, 0xc0044ad680, 0x4, 0x4, 0x2d87a00, 0xc0002af680, 0x16)
		/usr/local/go/src/reflect/value.go:308 +0xa4
	yunion.io/x/onecloud/pkg/cloudcommon/db.callFunc(0x2d87a00, 0xc0002af680, 0x8a13, 0xc000951688, 0x4, 0x4, 0xc0002af680, 0x8a13, 0x2dc0527, 0xb, ...)
		/data/git/yunion-build/work/go/src/yunion.io/x/onecloud/pkg/cloudcommon/db/caller.go:78 +0x397
	...
	[I 200224 10:13:18 appsrv.(*Application).ServeHTTP(appsrv.go:237)] MfQCvNyik-obRBzFjFZy5ARfXcE= 500 5c1d82 GET /loadbalancerbackends?backend_group=Yunion-Tools&details=true&limit=20&offset=0 (10.40.156.64:57606) 57.90ms

Fixes 76d974f6d ("feature: api -> response struct")
2020-03-06 13:36:06 +08:00
Zexi Li
1d440b57ce Merge pull request #5362 from swordqiu/automated-cherry-pick-of-#5361-upstream-release-3.1
Automated cherry pick of #5361: fix: allow project do user-list, group-list, returns current project user and group
2020-03-06 13:03:32 +08:00
Zexi Li
e3c564bd56 Merge pull request #5367 from rainzm/automated-cherry-pick-of-#5366-upstream-release-3.1
Automated cherry pick of #5366: fix/notify: Fix the resend mechanism
2020-03-06 12:46:02 +08:00
yunion-ci-robot
45e04c4d50 Merge pull request #5364 from wanyaoqi/automated-cherry-pick-of-#5363-upstream-release-3.1
Automated cherry pick of #5363: fix disk billing type on guest is postpaid
2020-03-06 12:29:50 +08:00
Rain
ee0f6de3b0 fix/notify: Fix the resend mechanism 2020-03-06 11:12:34 +08:00
wanyaoqi
608be69260 fix disk billing type on guest is postpaid 2020-03-05 20:33:19 +08:00
Qiu Jian
88fa459aac fix: allow project do user-list, group-list, returns current project user and group 2020-03-05 20:09:58 +08:00
yunion-ci-robot
b4bb5d902f Merge pull request #5360 from wanyaoqi/automated-cherry-pick-of-#5359-upstream-release-3.1
Automated cherry pick of #5359: enable network list filter by host show vpc networks
2020-03-05 20:00:49 +08:00
wanyaoqi
7f467ab3a7 enable network list filter by host show vpc networks 2020-03-05 19:33:17 +08:00
yunion-ci-robot
5c1714d11d Merge pull request #5357 from rainzm/automated-cherry-pick-of-#5353-upstream-release-3.1
Automated cherry pick of #5353: feature(notify): Add query and return value for contact UPDATE interface
2020-03-05 19:03:51 +08:00
Rain
5f36cbb31c feature(notify): Add query and return value for contact UPDATE interface
1. Add same return value with contact GET interface when updating
2. Add pull params for query to pull subcontact by mobile number.
   For example, pull user_id from dingtalk throught user's mobile
   number.
3. Add corresponding feature based on above for climc.
4. UserCache will try FetchByName if there is no id matched user when
   fetching users from KeyStone.
2020-03-05 17:10:04 +08:00
Zexi Li
850544ee4d Merge pull request #5352 from rainzm/automated-cherry-pick-of-#5330-upstream-release-3.1
Automated cherry pick of #5330: feat: Add useridByMobile and accessToken cache for feishu
2020-03-05 14:18:38 +08:00
Rain
7ff8935abc feat: Add useridByMobile and accessToken cache for feishu 2020-03-05 14:12:39 +08:00
Zexi Li
874cf21b00 Merge pull request #5346 from swordqiu/hotfix/qj-update-autogen-struct-json-fieldname-3.1
fix: update autogen struct json field name for release/3.1
2020-03-05 14:07:41 +08:00
yunion-ci-robot
231fefed1f Merge pull request #5350 from zexi/automated-cherry-pick-of-#5349-upstream-release-3.1
Automated cherry pick of #5349: monitor: fix alert update not work
2020-03-04 22:54:20 +08:00
Qiu Jian
5dd591f1bb update autogen struct with comment lines 2020-03-04 21:19:54 +08:00
Zexi Li
ab32057ab1 monitor: fix alert update not work 2020-03-04 21:17:27 +08:00
yunion-ci-robot
84fec885e8 Merge pull request #5334 from yousong/automated-cherry-pick-of-#5333-upstream-release-3.1
Automated cherry pick of #5333: hostman: default ovn options from environment
2020-03-04 20:57:11 +08:00
yunion-ci-robot
8057b95ac2 Merge pull request #5344 from ioito/automated-cherry-pick-of-#5343-upstream-release-3.1
Automated cherry pick of #5343: fix: 支持aws rds sync
2020-03-04 20:50:09 +08:00
Qiu Jian
9adac58590 fix: update autogen struct json field name for release/3.1 2020-03-04 20:43:26 +08:00
Qu Xuan
f409fca66b fix: 支持aws rds sync 2020-03-04 20:10:22 +08:00
yunion-ci-robot
edd7136d3e Merge pull request #5341 from zexi/automated-cherry-pick-of-#5340-upstream-release-3.1
Automated cherry pick of #5340: alert notification use joint model
2020-03-04 19:59:09 +08:00
Zexi Li
b1c80010cc Merge pull request #5332 from yousong/automated-cherry-pick-of-#5331-upstream-release-3.1
Automated cherry pick of #5331: build: docker-centos-build: run as root
2020-03-04 19:17:02 +08:00
Zexi Li
5ff255d622 alert notification use joint model 2020-03-04 19:17:00 +08:00
Zexi Li
fb531b4d68 Merge pull request #5338 from swordqiu/automated-cherry-pick-of-#5336-upstream-release-3.1
Automated cherry pick of #5336: fix: keystone user password history check should skip system account
2020-03-04 19:16:27 +08:00
Qiu Jian
03cd5dc63a fix: keystone user password history check should skip system account 2020-03-04 18:44:04 +08:00
Yousong Zhou
fa48381bd7 hostman: default ovn options from environment 2020-03-04 16:43:33 +08:00
Yousong Zhou
38a6decc25 build: docker-centos-build: run as root
so that output file ownership can be properly changed

The Dockerfile was moved to a separate repo for maintenance
2020-03-04 15:10:20 +08:00
Zexi Li
627495d200 Merge pull request #5329 from zexi/automated-cherry-pick-of-#5328-upstream-release-3.1
Automated cherry pick of #5328: fix: docker_push uncomment build bin
2020-03-03 16:18:09 +08:00
Zexi Li
37b823a43c fix: docker_push uncomment build bin 2020-03-03 16:19:29 +08:00
Zexi Li
112eb0d7ae Merge pull request #5325 from swordqiu/automated-cherry-pick-of-#5324-upstream-release-3.1
Automated cherry pick of #5324: fix: clean up pending usage no matter whether object upload is success
2020-03-03 13:14:18 +08:00
yunion-ci-robot
bee314a0e6 Merge pull request #5316 from ioito/automated-cherry-pick-of-#5315-upstream-release-3.1
Automated cherry pick of #5315: fix: 避免旧套餐下架zone信息未知,导致同步rds异常
2020-03-03 02:23:44 +08:00
Qiu Jian
60ef016f42 fix: clean up pending usage no matter whether object upload is success 2020-03-03 02:12:49 +08:00
yunion-ci-robot
da235de896 Merge pull request #5323 from zexi/automated-cherry-pick-of-#5322-upstream-release-3.1
Automated cherry pick of #5322: add monitor service
2020-03-02 20:51:43 +08:00
Zexi Li
68a425ebd5 add monitor service 2020-03-02 20:05:50 +08:00
yunion-ci-robot
15f6b94bec Merge pull request #5321 from yousong/automated-cherry-pick-of-#5320-upstream-release-3.1
Automated cherry pick of #5320: build: docker: chown _output dir to current user:group
2020-03-02 17:47:38 +08:00
Yousong Zhou
d8dd372cb0 build: docker: chown _output dir to current user:group 2020-03-02 17:36:26 +08:00
Qu Xuan
e14a596d9f fix: 避免旧套餐下架zone信息未知,导致同步rds异常 2020-03-02 17:09:13 +08:00
yunion-ci-robot
a0ab40dbb8 Merge pull request #5313 from wanyaoqi/automated-cherry-pick-of-#5312-upstream-release-3.1
Automated cherry pick of #5312: fix get remote address because of request is proxyed by k8s
2020-02-29 00:15:30 +08:00
wanyaoqi
75e49ac8c6 fix get remote address because of request is proxyed by k8s 2020-02-28 22:27:16 +08:00
yunion-ci-robot
590ec32860 Merge pull request #5273 from zhaoxiangchun/automated-cherry-pick-of-#5268-upstream-release-3.1
Automated cherry pick of #5268: 谷歌云multicloud监控
2020-02-28 22:24:29 +08:00
yunion-ci-robot
57fd313b43 Merge pull request #5308 from ioito/automated-cherry-pick-of-#5307-upstream-release-3.1
Automated cherry pick of #5307: 修复aliyun没有权限获取余额问题
2020-02-28 22:05:29 +08:00
yunion-ci-robot
86e4df54d9 Merge pull request #5287 from wanyaoqi/automated-cherry-pick-of-#5286-upstream-release-3.1
Automated cherry pick of #5286: host register use default vpc
2020-02-28 21:55:21 +08:00
yunion-ci-robot
a9f60a7b1a Merge pull request #5306 from yousong/automated-cherry-pick-of-#5305-upstream-release-3.1
Automated cherry pick of #5305: build: github: build vpcagent image
2020-02-28 21:51:28 +08:00
yunion-ci-robot
087de62171 Merge pull request #5278 from ioito/automated-cherry-pick-of-#5277-upstream-release-3.1
Automated cherry pick of #5277: fix: 新加gcp region 翻译
2020-02-28 20:51:21 +08:00
Qu Xuan
8577cb096e 修复aliyun没有权限获取余额问题 2020-02-28 19:55:33 +08:00
Yousong Zhou
2110057bac hostman: disable services on host system when running in container 2020-02-28 18:22:29 +08:00
Yousong Zhou
3c09ce17d0 build: github: build vpcagent image 2020-02-28 18:22:29 +08:00
Zexi Li
dc870afaed Merge pull request #5304 from yousong/automated-cherry-pick-of-#5303-upstream-release-3.1
Automated cherry pick of #5303: build: github: add back ceph devel deps for baremetal-agent
2020-02-28 16:13:30 +08:00
Yousong Zhou
fcb8bba00c build: github: add back ceph devel deps for baremetal-agent 2020-02-28 16:10:28 +08:00
yunion-ci-robot
7996a02a80 Merge pull request #5302 from yousong/automated-cherry-pick-of-#5301-upstream-release-3.1
Automated cherry pick of #5301: build: rename docker-build to docker-centos-build
2020-02-28 15:52:30 +08:00
Yousong Zhou
3349dc46c5 build: github: build host with docker-alpine-build 2020-02-28 15:28:04 +08:00
Yousong Zhou
a85fd307d3 build: add docker-alpine-build 2020-02-28 15:28:04 +08:00
Yousong Zhou
37f1906f72 build: rename docker-build to docker-centos-build 2020-02-28 15:28:04 +08:00
yunion-ci-robot
d5096ad4ee Merge pull request #5296 from tb365/automated-cherry-pick-of-#5295-upstream-release-3.1
Automated cherry pick of #5295: vpc list add param vpc_usable
2020-02-28 14:22:21 +08:00
yunion-ci-robot
24da237790 Merge pull request #5291 from ioito/automated-cherry-pick-of-#5290-upstream-release-3.1
Automated cherry pick of #5290: 添加azure region city信息
2020-02-28 13:17:19 +08:00
TangBin
d34b00ddc4 vpc list add param vpc_usable 2020-02-28 12:10:54 +08:00
Zexi Li
2f47d93215 Merge pull request #5267 from yousong/automated-cherry-pick-of-#5266-upstream-release-3.1
Automated cherry pick of #5266: vpcagent: resolve ovn db address at args validation time
2020-02-28 11:58:13 +08:00
Yousong Zhou
1bbf79528b build: host: adjust build method
- new host-base for native alpine utilities
 - build host with native alpine toolchain
2020-02-28 11:43:12 +08:00
Yousong Zhou
0c0c4fc94d build: build vpcagent container 2020-02-28 11:43:12 +08:00
Yousong Zhou
01de80ed09 hostman: use "uname -m" for for fetch processor type
"uname -p" command from native busybox, coreutils may return "unknown".
CentOS coreutils has a patch fallback to using uts.machine if sysinfo
syscall is not available

Use "uname -m" for maximum compatibility
2020-02-28 11:43:12 +08:00
Yousong Zhou
3861bb6bc1 hostman: work with ovn-controller already in container 2020-02-28 11:43:12 +08:00
Yousong Zhou
681fee1317 sysutils: use remote executor for hostnamectl as far as possible
So that hostnamectl can be omitted in host-base container image
2020-02-28 11:43:12 +08:00
Yousong Zhou
2496a12833 vpcagent: resolve ovn db address at args validation time
Until we find a reliable way to get k8s svc dns name
2020-02-28 11:43:12 +08:00
Yousong Zhou
c76062406d hostman: resolve ovn db address before setting it into ovsdb 2020-02-28 11:43:12 +08:00
Yousong Zhou
df94352e00 ovsutils: add NormalizeDbHost 2020-02-28 11:43:12 +08:00
Qu Xuan
5b9c7ba9f2 添加azure region city信息 2020-02-28 11:37:00 +08:00
yunion-ci-robot
e8dc05084a Merge pull request #5276 from ioito/automated-cherry-pick-of-#5275-upstream-release-3.1
Automated cherry pick of #5275: fix: 谷歌云建议关机下调整配置,部分linux开机也调整不了配置
2020-02-28 09:34:19 +08:00
wanyaoqi
0774a2ded0 host register use default vpc 2020-02-27 23:29:28 +08:00
yunion-ci-robot
50421b06b9 Merge pull request #5270 from tb365/automated-cherry-pick-of-#5269-upstream-release-3.1
Automated cherry pick of #5269: huawei secgroup default vpc id fix
2020-02-27 20:57:18 +08:00
TangBin
7e7825a681 huawei secgroup default vpc id fix 2020-02-27 19:32:10 +08:00
Qu Xuan
45b8a7afd9 fix: 新加gcp region 翻译 2020-02-27 18:54:47 +08:00
Qu Xuan
4ec1fc58d9 fix: 谷歌云建议关机下调整配置,部分linux开机也调整不了配置 2020-02-27 16:53:10 +08:00
zhaoxiangchun
69564365b9 谷歌云multicloud监控
monitor.go文件中GetMonitorData函数:
 1)首先组装参数信息
 2)通过external_id获取相关id信息,根据restAPI文档中的resource格式拼装完成monitoring相关的resource信息
 3)然后通过monitorList函数获取相关的监控信息

更新go.mod google.golang.org所依赖的google.golang.org/api版本
2020-02-27 15:48:52 +08:00
yunion-ci-robot
54caca2d04 Merge pull request #5262 from tb365/automated-cherry-pick-of-#5261-upstream-release-3.1
Automated cherry pick of #5261: ctyun get vm by id fix
2020-02-27 07:19:13 +08:00
yunion-ci-robot
ce3241d046 Merge pull request #5265 from rainzm/automated-cherry-pick-of-#5263-upstream-release-3.1
Automated cherry pick of #5263: fix(esxiagent): SSHKey was not unmarshalled correctly
2020-02-27 07:11:14 +08:00
yunion-ci-robot
40773180fa Merge pull request #5239 from wanyaoqi/automated-cherry-pick-of-#5238-upstream-release-3.1
Automated cherry pick of #5238: fix host init set reserve memory
2020-02-26 23:13:13 +08:00
yunion-ci-robot
32411bf2ec Merge pull request #5237 from tb365/automated-cherry-pick-of-#5236-upstream-release-3.1
Automated cherry pick of #5236: huawei & ctyun security group sync fix
2020-02-26 21:04:13 +08:00
wanyaoqi
c99265e743 makesure /etc/ceph created before connect 2020-02-26 20:44:31 +08:00
Rain
2d4cff4ef1 fix(esxiagent): SSHKey was not unmarshalled correctly 2020-02-26 20:12:47 +08:00
TangBin
bb90b5e8a1 ctyun vpc create fix 2020-02-26 17:40:56 +08:00
TangBin
b1c4bc276f ctyun eip charge type fix 2020-02-26 17:40:56 +08:00
TangBin
1923e36740 ctyun attach disk fix 2020-02-26 17:40:56 +08:00
TangBin
7bec5e6f7e ctyun get vm by id fix 2020-02-26 17:40:56 +08:00
yunion-ci-robot
b40be2608b Merge pull request #5232 from ioito/automated-cherry-pick-of-#5231-upstream-release-3.1
Automated cherry pick of #5231: fix: 添加磁盘回滚snapshot日志
2020-02-26 16:00:15 +08:00
Zexi Li
46d2f6efb7 Merge pull request #5254 from swordqiu/automated-cherry-pick-of-#5252-upstream-release-3.1
Automated cherry pick of #5252: fix: use globalEndpointType as default endpoint type
2020-02-26 10:37:37 +08:00
yunion-ci-robot
d55f1db7ff Merge pull request #5243 from ioito/automated-cherry-pick-of-#5242-upstream-release-3.1
Automated cherry pick of #5242: fix: 避免根磁盘小于镜像大小导致创建失败
2020-02-26 10:20:13 +08:00
yunion-ci-robot
0bcc19d7c1 Merge pull request #5248 from ioito/automated-cherry-pick-of-#5247-upstream-release-3.1
Automated cherry pick of #5247: fix: 返回azure api 错误信息
2020-02-25 21:07:14 +08:00
Qiu Jian
b395dc8cee fix: use globalEndpointType as default endpoint type 2020-02-25 20:47:15 +08:00
Qu Xuan
c908e0c19a fix: 返回azure api 错误信息 2020-02-25 19:31:07 +08:00
Qu Xuan
ce5a95607f fix: 避免根磁盘小于镜像大小导致创建失败 2020-02-25 15:38:19 +08:00
wanyaoqi
d4ba5ca52e fix host register get network filter: add server_type baremetal 2020-02-25 11:25:46 +08:00
wanyaoqi
92129824c0 fix guest network get desc 2020-02-25 11:25:46 +08:00
wanyaoqi
7326b1fb0d fix host init set reserve memory 2020-02-25 11:25:46 +08:00
yunion-ci-robot
1b5756fe1c Merge pull request #5227 from rainzm/automated-cherry-pick-of-#5186-upstream-release-3.1
Automated cherry pick of #5186: feature(notify): Validate config
2020-02-25 08:21:09 +08:00
TangBin
08f8ce1f7c huawei & ctyun security group sync fix 2020-02-24 20:15:48 +08:00
Qu Xuan
2c5234b97e fix: 添加磁盘回滚snapshot日志 2020-02-24 16:07:28 +08:00
Rain
37049bd5f3 feature(notify): Validate config 2020-02-24 14:10:41 +08:00
yunion-ci-robot
177ba6cf2c Merge pull request #5225 from tb365/automated-cherry-pick-of-#5224-upstream-release-3.1
Automated cherry pick of #5224: network query by ip fix
2020-02-23 18:52:06 +08:00
yunion-ci-robot
bf2bb9878f Merge pull request #5223 from wanyaoqi/automated-cherry-pick-of-#5222-upstream-release-3.1
Automated cherry pick of #5222: region misc fix:
2020-02-21 23:38:00 +08:00
TangBin
530b2a1422 network query by ip fix 2020-02-21 19:00:27 +08:00
wanyaoqi
1eba8b8a7e region misc fix:
- guest postpaid expire support set expire time
- list instance snapshot sub snapshot return size
2020-02-21 17:45:46 +08:00
Zexi Li
4829e0d285 Merge pull request #5212 from swordqiu/automated-cherry-pick-of-#5208-upstream-release-3.1
Automated cherry pick of #5208: fix: reset paging limit to 2048 from 20
2020-02-21 16:46:05 +08:00
Zexi Li
b29d6d4f4e Merge pull request #5218 from rainzm/automated-cherry-pick-of-#5217-upstream-release-3.1
Automated cherry pick of #5217: fix: Storage filter not work for Esxi
2020-02-21 16:44:38 +08:00
yunion-ci-robot
d41c3bfea7 Merge pull request #5207 from tb365/automated-cherry-pick-of-#5199-upstream-release-3.1
Automated cherry pick of #5199: cloud region city list add default limit 2048
2020-02-21 15:53:41 +08:00
yunion-ci-robot
907058464a Merge pull request #5197 from ioito/automated-cherry-pick-of-#5196-upstream-release-3.1
Automated cherry pick of #5196: fix: gcp win os not support change config when vm running
2020-02-21 15:44:33 +08:00
Rain
c727334bc4 fix: Storage filter not work for Esxi
1. SESXiGuestDriver.DoScheduleStorageFilter should return true.
2. ESXi's SHost.GetStorageSizeMB should return the capacity of all the
storage belonging to it.
2020-02-21 15:13:18 +08:00
yunion-ci-robot
b7e2c462cb Merge pull request #5214 from ioito/automated-cherry-pick-of-#5213-upstream-release-3.1
Automated cherry pick of #5213: fix: 添加gcp region中文翻译
2020-02-20 21:17:29 +08:00
yunion-ci-robot
1efc0fe07b Merge pull request #5200 from ioito/automated-cherry-pick-of-#5198-upstream-release-3.1
Automated cherry pick of #5198: fix: 修复azure坐标问题,添加新的azure region城市信息
2020-02-20 21:02:31 +08:00
yunion-ci-robot
9d1b407c40 Merge pull request #5192 from ioito/automated-cherry-pick-of-#5191-upstream-release-3.1
Automated cherry pick of #5191: fix: add aliyun new region info
2020-02-20 18:21:29 +08:00
Qu Xuan
67c2435f4f fix: 添加gcp region中文翻译 2020-02-20 17:38:25 +08:00
yunion-ci-robot
c11c79ef71 Merge pull request #5188 from ioito/automated-cherry-pick-of-#5187-upstream-release-3.1
Automated cherry pick of #5187: fix: 填充gcp disk_format字段
2020-02-20 15:30:30 +08:00
Qiu Jian
c245013e59 fix: reset paging limit to 2048 from 20 2020-02-20 15:22:07 +08:00
TangBin
83b4916646 huawei cloud create bugfix 2020-02-20 15:03:54 +08:00
TangBin
f6d1ea7b25 cloud region city list add default limit 2048 2020-02-20 15:03:54 +08:00
Qu Xuan
c988fd1b1f fix: 修复azure坐标问题,添加新的azure region城市信息 2020-02-20 14:55:16 +08:00
Qu Xuan
f6df6d34e0 fix: gcp win os not support change config when vm running 2020-02-20 12:00:06 +08:00
Qu Xuan
44183902f7 fix: add aliyun new region info 2020-02-20 11:07:17 +08:00
Qu Xuan
64fda24e76 fix: 填充gcp disk_format字段 2020-02-20 10:45:43 +08:00
yunion-ci-robot
0701512da9 Merge pull request #5185 from tb365/automated-cherry-pick-of-#5181-upstream-release-3.1
Automated cherry pick of #5181: aws listener sync fix
2020-02-19 19:18:28 +08:00
tangbin
71499e7e1b huawei http listener sync fix 2020-02-19 18:48:30 +08:00
tangbin
6f6cf7cd64 aws rebuild root fix 2020-02-19 18:48:30 +08:00
tangbin
8f175ec326 aws listener sync fix 2020-02-19 18:48:30 +08:00
yunion-ci-robot
c0c26c7c40 Merge pull request #5180 from rainzm/automated-cherry-pick-of-#5178-upstream-release-3.1
Automated cherry pick of #5178: fix(esxi): No distinction between ordinary scsi and pvscsi when creating disks
2020-02-19 17:51:29 +08:00
Rain
42cd5b1435 fix(esxi): No distinction between ordinary scsi and pvscsi when creating disks
parascsi 是 vmware 中一种高性能的 scsi 控制器。

在此之前,scsi 只包括 "lsilogic", "lsilogicsas", "buslogic"; 而别名为 pvscsi
的 parascsi 没有被包含进来;并且,一个 pci controller只能挂一个 scsi controller,
这会导致如果在一个拥有 pvscsi 的机器上添加普通scsi驱动类型的磁盘,就会替换驱动;
反之亦然。这会导致驱动的 key 不是我们指定的key,并且在添加磁盘的时候替换驱动的
类型有些随意。再者,我们的驱动类型的选择其实并没有暴露给前端。

所以,在寻找相应的controller时,将 parascsi 也纳入 scsi 类型。
尽量避免在创建磁盘的时候做硬件的改动,所以在创建磁盘的时候不区分 scsi
还是 pvscsi,如果两种 controller 均没有,就按照请求的类型创建一个。

此外,在 CloneVM 的时候,如果支持,优先使用 parascsi。
2020-02-19 16:59:57 +08:00
yunion-ci-robot
4fafb8ae75 Merge pull request #5150 from tb365/automated-cherry-pick-of-#5145-upstream-release-3.1
Automated cherry pick of #5145: qcloud elb sync
2020-02-19 16:08:28 +08:00
Yousong Zhou
8349dcbba3 Merge pull request #5177 from swordqiu/automated-cherry-pick-of-#5173-upstream-release-3.1
Automated cherry pick of #5173: fix: sync cloud provider should change its cloud account's sync_status
2020-02-19 16:02:46 +08:00
yunion-ci-robot
85a792d2b1 Merge pull request #5161 from rainzm/automated-cherry-pick-of-#5097-upstream-release-3.1
Automated cherry pick of #5097: feature: Specify cloud provider when creating vm
2020-02-19 14:50:28 +08:00
yunion-ci-robot
71fee70283 Merge pull request #5166 from tb365/automated-cherry-pick-of-#5162-upstream-release-3.1
Automated cherry pick of #5162: huawei elb backend vpc validate fix
2020-02-19 13:43:28 +08:00
yunion-ci-robot
456c5fb50e Merge pull request #5168 from ioito/automated-cherry-pick-of-#5167-upstream-release-3.1
Automated cherry pick of #5167: fix: 避免将虚拟机ip同步到弹性网卡
2020-02-19 12:37:28 +08:00
yunion-ci-robot
b706356ba9 Merge pull request #5160 from yousong/automated-cherry-pick-of-#5159-upstream-release-3.1
Automated cherry pick of #5159: region: lbagent: deploy: use 'public' endpoint type
2020-02-19 12:04:27 +08:00
Qiu Jian
ed2bba3dd5 fix: sync cloud provider should change its cloud account's sync_status 2020-02-19 12:02:42 +08:00
Zexi Li
b6e701a6b2 Merge pull request #5158 from swordqiu/automated-cherry-pick-of-#5156-upstream-release-3.1
Automated cherry pick of #5156: fix: add climc helper scripts into docker images
2020-02-19 02:32:58 +08:00
Zexi Li
c21636b521 Merge pull request #5155 from swordqiu/automated-cherry-pick-of-#5151-upstream-release-3.1
Automated cherry pick of #5151: fix: 1. adjust default response header timer to 30 seconds 2. set default paging limit to 20
2020-02-19 02:30:10 +08:00
Yousong Zhou
2e0f424c73 lbagent: fix config for sticky session cookie
- account for user specific cookie name for insert mode
 - dont tamper cache instructions from backend server for server mode
2020-02-18 20:55:10 +08:00
Yousong Zhou
a2f30806cf region: lbagent: deploy: use 'public' endpoint type 2020-02-18 20:55:10 +08:00
Qu Xuan
0c0b4b43aa fix: 避免将虚拟机ip同步到弹性网卡 2020-02-18 15:38:12 +08:00
yunion-ci-robot
209bee4181 Merge pull request #5139 from ioito/automated-cherry-pick-of-#5138-upstream-release-3.1
Automated cherry pick of #5138: fix: 避免未过滤掉同一个network底下的guest
2020-02-18 14:46:39 +08:00
tangbin
ba265a7b83 huawei elb backend vpc validate fix 2020-02-18 14:21:47 +08:00
yunion-ci-robot
1a8f8dcb93 Merge pull request #5135 from zhaoxiangchun/automated-cherry-pick-of-#5132-upstream-release-3.1
Automated cherry pick of #5132: zstack监控功能
2020-02-18 12:06:45 +08:00
Rain
2a01c86428 feature: Specify cloud provider when creating vm
Specifying the eip is equivalent to specifying the cloudprovider when
creating vm.
2020-02-18 11:44:27 +08:00
Qiu Jian
dc75d93414 fix: add climc helper scripts into docker images 2020-02-18 10:17:31 +08:00
yunion-ci-robot
fe44564bf7 Merge pull request #5137 from yousong/automated-cherry-pick-of-#5136-upstream-release-3.1
Automated cherry pick of #5136: regiondrivers: kvm: dummy impl for RequestDeleteVpc
2020-02-18 09:45:38 +08:00
yunion-ci-robot
8cd23304ae Merge pull request #5144 from wanyaoqi/automated-cherry-pick-of-#5143-upstream-release-3.1
Automated cherry pick of #5143: check scsi driver on add disk
2020-02-18 09:41:40 +08:00
Qiu Jian
4b8e13f171 fix: 1. adjust default response header timer to 30 seconds 2. set default paging limit to 20 2020-02-18 08:55:58 +08:00
yunion-ci-robot
b6739ba7e8 Merge pull request #5131 from tb365/automated-cherry-pick-of-#5130-upstream-release-3.1
Automated cherry pick of #5130: huawei sync fix
2020-02-18 08:15:41 +08:00
TangBin
3db7b0c962 qcloud elb sync 2020-02-17 22:33:23 +08:00
wanyaoqi
0d6480723d check scsi driver on add disk 2020-02-17 22:00:07 +08:00
yunion-ci-robot
9a91bf244c Merge pull request #5129 from tb365/automated-cherry-pick-of-#5128-upstream-release-3.1
Automated cherry pick of #5128: huawei userdata fix
2020-02-17 21:54:36 +08:00
Qu Xuan
b1a641ca4d fix: 避免未过滤掉同一个network底下的guest 2020-02-17 20:51:43 +08:00
Yousong Zhou
c65e1e0855 regiondrivers: kvm: dummy impl for RequestDeleteVpc
Regression since 4a6a4c594a ("feature:
google云操作支持")

	Feb 17 15:53:12 titan-10-168-222-196 region[20940]: [I 200217 15:53:12 appsrv.(*Application).ServeHTTP(appsrv.go:237)] Ao9tyX8XY4DXa3tBiUyXgPm_ipc= 200 f7a73c DELETE /vpcs/vpc1 (10.168.222.196:46354) 723.91ms
	Feb 17 15:53:13 titan-10-168-222-196 region[20940]: [E 200217 15:53:13 tasks.(*VpcDeleteTask).taskFailed(vpc_delete_task.go:41)] vpc delete task fail: RequestDeleteVpc: Not implement RequestDeleteVpc
	Feb 17 15:53:13 titan-10-168-222-196 region[20940]: [I 200217 15:53:13 taskman.(*STask).SetStageFailed(tasks.go:636)] XXX TASK VpcDeleteTask failed: RequestDeleteVpc: Not implement RequestDeleteVpc on stage OnDeleteVpcComplete
	Feb 17 15:53:13 titan-10-168-222-196 region[20940]: [I 200217 15:53:13 taskman.(*STask).NotifyParentTaskComplete(tasks.go:648)] notify_parent_task_complete: VpcDeleteTask params {"__failed_reason":"RequestDeleteVpc: Not implement RequestDeleteVpc","__request_context":{"request_id":"f7a73c","service_name":"compute_v2","trace":{"debug":true,"duration":0,"id":"0","kind":"SERVER","local_endpoint":{"port":0,"service_name":"compute_v2"},"name":"delete","remote_endpoint":{"addr":"10.168.222.196","port":46354,"service_name":"(unknown_service)"},"shared":false,"tags":{"resource":"vpcs"},"timestamp":"2020-02-17T07:53:12.052219Z","trace_id":"5cf3e014"}},"__stages":[{"complete_at":"2020-02-17T15:53:12Z","name":"on_init"},{"complete_at":"2020-02-17T15:53:13Z","name":"OnDeleteVpcComplete"}]}
2020-02-17 16:22:17 +08:00
zhaoxiangchun
d8fc57b217 zstack监控功能
monitor.go中GetMonitorData函数通过传入的参数拼装请求参数,然后调用zstack.go中的getMonitor(),通过GET请求,获取相应的指标监控数据
2020-02-17 12:03:17 +08:00
tangbin
f9a47d94c7 ctyun custom image create bugfix 2020-02-15 17:33:55 +08:00
tangbin
ac2c3697bf ctyun sync fix 2020-02-15 17:33:55 +08:00
tangbin
b1048baef3 huawei sync fix 2020-02-15 17:33:55 +08:00
tangbin
bfc1f0125f huawei userdata fix 2020-02-15 12:56:43 +08:00
yunion-ci-robot
4b6d0107b0 Merge pull request #5127 from ioito/automated-cherry-pick-of-#5126-upstream-release-3.1
Automated cherry pick of #5126: fix: 添加host标签返回值
2020-02-15 07:58:06 +08:00
yunion-ci-robot
1948c12012 Merge pull request #5116 from tb365/automated-cherry-pick-of-#5115-upstream-release-3.1
Automated cherry pick of #5115: aws userdata bugfix
2020-02-15 00:05:06 +08:00
Qu Xuan
6345086c5b fix: 添加host标签返回值 2020-02-14 20:46:55 +08:00
tangbin
08d412669d aws userdata bugfix 2020-02-14 19:36:13 +08:00
yunion-ci-robot
c85a8d354e Merge pull request #5125 from ioito/automated-cherry-pick-of-#5124-upstream-release-3.1
Automated cherry pick of #5124: fix: disks_info typo
2020-02-14 18:22:05 +08:00
Qu Xuan
03be58f39a fix: disks_info typo 2020-02-14 17:51:58 +08:00
yunion-ci-robot
60cb619043 Merge pull request #5123 from rainzm/automated-cherry-pick-of-#5121-upstream-release-3.1
Automated cherry pick of #5121: fix(esxiagent): Delete image backup file after saving to glance instead of before
2020-02-14 17:42:05 +08:00
Rain
91c39cf8cd fix(esxiagent): Delete image backup file after saving to glance instead of before 2020-02-14 17:17:06 +08:00
yunion-ci-robot
f73ac4844f Merge pull request #5118 from ioito/automated-cherry-pick-of-#5117-upstream-release-3.1
Automated cherry pick of #5117: fix: 谷歌新加region翻译
2020-02-14 16:12:05 +08:00
Qu Xuan
e681f66aad fix: 谷歌新加region翻译 2020-02-14 14:44:22 +08:00
yunion-ci-robot
d7bf41e173 Merge pull request #5110 from rainzm/automated-cherry-pick-of-#5106-upstream-release-3.1
Automated cherry pick of #5106: fix(notify): Set some default template
2020-02-14 12:20:06 +08:00
yunion-ci-robot
ea3247eaba Merge pull request #5112 from zexi/automated-cherry-pick-of-#5111-upstream-release-3.1
Automated cherry pick of #5111: region: server list by host sn
2020-02-14 12:09:04 +08:00
Zexi Li
d91dbf5f47 region: server list by host sn 2020-02-13 21:09:06 +08:00
Rain
52129c544b fix(notify): Set some default template 2020-02-13 16:54:28 +08:00
yunion-ci-robot
a3b3e9c627 Merge pull request #5089 from rainzm/automated-cherry-pick-of-#5087-upstream-release-3.1
Automated cherry pick of #5087: fix(esxi): Create one if no suitable driver exists when creating disk
2020-02-13 14:38:04 +08:00
yunion-ci-robot
04c73b189d Merge pull request #5084 from tb365/automated-cherry-pick-of-#5083-upstream-release-3.1
Automated cherry pick of #5083: fix ctyun os version
2020-02-13 12:16:03 +08:00
tangbin
f75dbefbfd ctyun vm create fix 2020-02-13 11:44:21 +08:00
tangbin
a2e4490613 add more log 2020-02-13 11:44:21 +08:00
tangbin
2c32832946 eip dissociate bugfixC 2020-02-13 11:44:21 +08:00
tangbin
18239e30cc fix create sys disk snapshot 2020-02-13 11:44:20 +08:00
tangbin
77d6e24ae7 fix ctyun os version 2020-02-13 11:44:20 +08:00
yunion-ci-robot
d5f6473d57 Merge pull request #5096 from bistuzx/automated-cherry-pick-of-#5092-upstream-release-3.1
Automated cherry pick of #5092: update account bucket options
2020-02-13 03:48:04 +08:00
yunion-ci-robot
f7d927cbdd Merge pull request #5086 from zexi/automated-cherry-pick-of-#5085-upstream-release-3.1
Automated cherry pick of #5085: webconsole: use base64 encode connect_params
2020-02-12 22:14:02 +08:00
张旭
56a3d9c05d update account bucket options 2020-02-12 18:29:40 +08:00
Rain
a4b76036c5 fix(esxi): Create one if no suitable driver when creating disk 2020-02-12 16:05:26 +08:00
yunion-ci-robot
9e20cce793 Merge pull request #5064 from zhaoxiangchun/automated-cherry-pick-of-#5061-upstream-release-3.1
Automated cherry pick of #5061: multicloud的vmware监控功能
2020-02-12 15:22:01 +08:00
Zexi Li
f7b3b0c1a0 webconsole: use base64 encode connect_params 2020-02-12 11:44:41 +08:00
yunion-ci-robot
6404e3c2a0 Merge pull request #5082 from rainzm/automated-cherry-pick-of-#5081-upstream-release-3.1
Automated cherry pick of #5081: fix: Fix the bug introduced by pr #4921
2020-02-11 19:16:00 +08:00
yunion-ci-robot
9a1b040933 Merge pull request #5078 from ioito/automated-cherry-pick-of-#5077-upstream-release-3.1
Automated cherry pick of #5077: fix: 修复gcp出方向规则同步问题
2020-02-11 17:42:00 +08:00
yunion-ci-robot
b5468ca840 Merge pull request #5073 from ioito/automated-cherry-pick-of-#5072-upstream-release-3.1
Automated cherry pick of #5072: fix: 忽略无权限的资源标签
2020-02-11 17:22:58 +08:00
Rain
77bbb2bda8 fix: Fix the bug introduced by pr #4921
1. The display problem of contact and notification in notify.
2. The display problem of snat's network info.
2020-02-11 16:51:09 +08:00
zhaoxiangchun
562498da68 multicloud的vmware监控功能
monitor.go中GetMonitorData()函数获取监控数据
2020-02-11 00:44:48 +08:00
Qu Xuan
b91c19bcb5 fix: 修复gcp出方向规则同步问题 2020-02-10 18:47:54 +08:00
Qu Xuan
e48c4d0bb2 fix: 忽略无权限的资源标签 2020-02-10 16:44:06 +08:00
Zexi Li
8c3872000a Merge pull request #5051 from ioito/automated-cherry-pick-of-#5050-upstream-release-3.1
Automated cherry pick of #5050: 统一 details -> isList
2020-02-10 11:12:37 +08:00
yunion-ci-robot
7fde85b83f Merge pull request #5053 from swordqiu/automated-cherry-pick-of-#5052-upstream-release-3.1
Automated cherry pick of #5052: fix: progressively update image size while uploading
2020-02-10 10:34:00 +08:00
yunion-ci-robot
262096d99d Merge pull request #5071 from swordqiu/automated-cherry-pick-of-#5065-upstream-release-3.1
Automated cherry pick of #5065: fix: allow empty domain for windows deployment
2020-02-10 10:32:57 +08:00
Qiu Jian
60ba83b40f fix: progressively update image size while uploading 2020-02-10 09:29:37 +08:00
Qiu Jian
5834ec297e fix: allow empty domain for windows deployment 2020-02-10 09:25:16 +08:00
yunion-ci-robot
8701c6172e Merge pull request #5055 from swordqiu/automated-cherry-pick-of-#5054-upstream-release-3.1
Automated cherry pick of #5054: fix: createdAt should not be synced when update
2020-02-09 22:08:59 +08:00
Qiu Jian
d912e29772 fix: createdAt should not be synced when update 2020-02-08 21:29:06 +08:00
Qu Xuan
bf0adeb0e2 统一 details -> isList 2020-02-07 18:03:18 +08:00
yunion-ci-robot
8857a6281e Merge pull request #5049 from ioito/automated-cherry-pick-of-#5048-upstream-release-3.1
Automated cherry pick of #5048: fix: google e2不支持本地盘
2020-02-07 16:42:54 +08:00
Qu Xuan
5537648dc7 fix: google e2不支持本地盘 2020-02-07 16:08:28 +08:00
yunion-ci-robot
158750373b Merge pull request #5045 from ioito/automated-cherry-pick-of-#5044-upstream-release-3.1
Automated cherry pick of #5044: fix: guest创建兼容keypair参数
2020-02-07 16:05:50 +08:00
Qu Xuan
8a719ffe1f fix: guest创建兼容keypair参数 2020-02-07 15:09:48 +08:00
Zexi Li
c1278bf088 Merge pull request #5043 from wanyaoqi/automated-cherry-pick-of-#5042-upstream-release-3.1
Automated cherry pick of #5042: bm register support update baremetal
2020-02-07 13:04:21 +08:00
Zexi Li
86d6a224cd Merge pull request #5030 from swordqiu/automated-cherry-pick-of-#5026-upstream-release-3.1
Automated cherry pick of #5026: fix: api gateway rpc handler redudant response
2020-02-07 13:03:37 +08:00
wanyaoqi
6b6a15e6b8 bm register support update baremetal 2020-02-07 09:27:02 +08:00
yunion-ci-robot
4a2b10e842 Merge pull request #5039 from ioito/automated-cherry-pick-of-#5038-upstream-release-3.1
Automated cherry pick of #5038: fix: 避免因tenantcache未缓存tenant导致创建云账号失败
2020-02-07 04:54:51 +08:00
yunion-ci-robot
38557f8bcd Merge pull request #5037 from tb365/automated-cherry-pick-of-#5032-upstream-release-3.1
Automated cherry pick of #5032: aws create with eip fix
2020-02-07 04:49:50 +08:00
Qu Xuan
8739393e52 fix: 避免因tenantcache未缓存tenant导致创建云账号失败 2020-02-06 18:29:15 +08:00
tangbin
fdad1303bc aws create with eip fix 2020-02-06 17:58:18 +08:00
yunion-ci-robot
bd2d11f964 Merge pull request #5031 from ioito/automated-cherry-pick-of-#5029-upstream-release-3.1
Automated cherry pick of #5029: fix: 修复gcp安全组同步问题
2020-02-06 17:51:52 +08:00
Qu Xuan
01c962f1c6 fix: 修复gcp安全组同步问题 2020-02-06 17:03:36 +08:00
Qiu Jian
d5ec862e26 fix: api gateway rpc handler redudant response 2020-02-06 17:03:13 +08:00
yunion-ci-robot
1e04ddfe5e Merge pull request #5022 from ioito/automated-cherry-pick-of-#5021-upstream-release-3.1
Automated cherry pick of #5021: fix: 避免因大小写导致linux未注入默认用户
2020-02-06 13:50:52 +08:00
Qu Xuan
67a6f9687d fix: 避免因大小写导致linux未注入默认用户 2020-02-06 12:02:12 +08:00
yunion-ci-robot
9bfb6c0c8e Merge pull request #5020 from swordqiu/automated-cherry-pick-of-#5014-upstream-release-3.1
Automated cherry pick of #5014: fix: support empty dns domain
2020-02-06 09:41:48 +08:00
yunion-ci-robot
b4fff49236 Merge pull request #5013 from swordqiu/automated-cherry-pick-of-#5012-upstream-release-3.1
Automated cherry pick of #5012: fix: network update error caused by vpc feature
2020-02-06 09:34:48 +08:00
Qiu Jian
8536166426 fix: support empty dns domain 2020-02-06 03:28:26 +08:00
Qiu Jian
4bd9051ae4 fix: network update error caused by vpc feature 2020-02-06 03:11:26 +08:00
yunion-ci-robot
74c272cfae Merge pull request #5011 from yousong/automated-cherry-pick-of-#5010-upstream-release-3.1
Automated cherry pick of #5010: vpcagent: ignore external stub guestnetworks
2020-02-06 01:50:48 +08:00
Yousong Zhou
38aed0ca4a vpcagent: ignore external stub guestnetworks 2020-02-05 11:38:57 +08:00
yunion-ci-robot
06eea75674 Merge pull request #5009 from yousong/automated-cherry-pick-of-#5008-upstream-release-3.1
Automated cherry pick of #5008: hostman: fix hostinfo init interrupted by ovn chassis setup
2020-02-05 10:22:47 +08:00
Yousong Zhou
ad73aa590a hostman: fix hostinfo init interrupted by ovn chassis setup
Causing sysinfo.SSystemInfo not initialized

[E 200205 09:45:49 timeutils2.AddTimeout.func1.1(timeutils.go:31)] runtime error: invalid memory address or nil pointer dereference
goroutine 405 [running]:
runtime/debug.Stack(0x551210, 0xc0000de1c0, 0x0)
        /opt/hostedtoolcache/go/1.12.16/x64/src/runtime/debug/stack.go:24 +0x9d
runtime/debug.PrintStack()
        /opt/hostedtoolcache/go/1.12.16/x64/src/runtime/debug/stack.go:16 +0x22
yunion.io/x/onecloud/pkg/util/timeutils2.AddTimeout.func1.1()
        /home/runner/work/onecloud/onecloud/pkg/util/timeutils2/timeutils.go:32 +0x96
panic(0x1b208e0, 0x3bd1880)
        /opt/hostedtoolcache/go/1.12.16/x64/src/runtime/panic.go:522 +0x1b5
yunion.io/x/onecloud/pkg/hostman/hostinfo.(*SHostInfo).updateHostRecord(0xc0009a8a80, 0xc000aff3b0, 0x24)
        /home/runner/work/onecloud/onecloud/pkg/hostman/hostinfo/hostinfo.go:866 +0xbba
yunion.io/x/onecloud/pkg/hostman/hostinfo.(*SHostInfo).getHostInfo(0xc0009a8a80, 0xc00099a510, 0x24)
        /home/runner/work/onecloud/onecloud/pkg/hostman/hostinfo/hostinfo.go:782 +0x37d
yunion.io/x/onecloud/pkg/hostman/hostinfo.(*SHostInfo).getZoneInfo(0xc0009a8a80, 0xc00099a4b0, 0x24, 0x0)
        /home/runner/work/onecloud/onecloud/pkg/hostman/hostinfo/hostinfo.go:760 +0x55c
yunion.io/x/onecloud/pkg/hostman/hostinfo.(*SHostInfo).onGetWireId(0xc0009a8a80, 0xc000aff2f0, 0x24)
        /home/runner/work/onecloud/onecloud/pkg/hostman/hostinfo/hostinfo.go:734 +0x16a
yunion.io/x/onecloud/pkg/hostman/hostinfo.(*SHostInfo).fetchAccessNetworkInfo(0xc0009a8a80)
        /home/runner/work/onecloud/onecloud/pkg/hostman/hostinfo/hostinfo.go:719 +0x3ee
yunion.io/x/onecloud/pkg/hostman/hostinfo.(*SHostInfo).register(...)
        /home/runner/work/onecloud/onecloud/pkg/hostman/hostinfo/hostinfo.go:662
yunion.io/x/onecloud/pkg/util/timeutils2.AddTimeout.func1(0x77359400, 0xc000925520)
        /home/runner/work/onecloud/onecloud/pkg/util/timeutils2/timeutils.go:37 +0x6b
created by yunion.io/x/onecloud/pkg/util/timeutils2.AddTimeout
        /home/runner/work/onecloud/onecloud/pkg/util/timeutils2/timeutils.go:28 +0x49
2020-02-05 10:08:32 +08:00
yunion-ci-robot
4322981be4 Merge pull request #5006 from yousong/automated-cherry-pick-of-#5005-upstream-release-3.1
Automated cherry pick of #5005: hostman: fix detection of ovn controller version
2020-02-05 02:17:48 +08:00
yunion-ci-robot
655d3632fa Merge pull request #5004 from zhaoxiangchun/automated-cherry-pick-of-#4996-upstream-release-3.1
Automated cherry pick of #4996: azure的主机监控信息的获取
2020-02-05 02:10:45 +08:00
Yousong Zhou
cd34e0db95 hostman: skip setting up ovn chassis when env support is not ready 2020-02-04 17:36:13 +08:00
Yousong Zhou
aae5d0dc33 hostman: fix detection of ovn controller version 2020-02-04 17:36:13 +08:00
Zexi Li
51b2f4d3af Merge pull request #5003 from ioito/automated-cherry-pick-of-#4921-upstream-release-3.1
Automated cherry pick of #4921: feature: api -> response struct
2020-02-04 15:55:51 +08:00
zhaoxiangchun
f7987dbf61 modify files by github comments 2020-02-04 10:26:10 +08:00
zhaoxiangchun
f1282345f1 azure的主机监控信息的获取
monitor.go中的GetMonitorData函数完成参数的组装,查询获取监控信息
2020-02-04 10:26:10 +08:00
Qu Xuan
9046117e00 feature: api -> response struct 2020-02-03 18:16:36 +08:00
1575 changed files with 16020 additions and 211747 deletions

View File

@@ -1,15 +1,9 @@
**这个 PR 实现什么功能/修复什么问题**:
<!--
- [ ] 功能、bugfix描述
- [ ] 冒烟测试
- [ ] 单元测试编写
-->
**是否需要 backport 到之前的 release 分支**:
<!--
如果不需要,填写 "NONE".
如果需要,就以下面 item 的格式写 release 分支名,并提交对应的 cherry-pick PR:
- release/3.1
- release/2.8.0
- release/2.6.0
-->

View File

@@ -41,36 +41,6 @@ jobs:
make cmd/esxi-agent
make docker-alpine-build F='-j4 cmd/host cmd/vpcagent cmd/region-dns'
- name: Image region
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: registry.cn-beijing.aliyuncs.com/yunionio/region
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
registry: registry.cn-beijing.aliyuncs.com
snapshot: true
dockerfile: build/docker/Dockerfile.region
- name: Image host
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: registry.cn-beijing.aliyuncs.com/yunionio/host
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
registry: registry.cn-beijing.aliyuncs.com
snapshot: true
dockerfile: build/docker/Dockerfile.host
- name: Image host-deployer
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: registry.cn-beijing.aliyuncs.com/yunionio/host-deployer
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
registry: registry.cn-beijing.aliyuncs.com
snapshot: true
dockerfile: build/docker/Dockerfile.host-deployer
- name: Image baremetal-agent
uses: elgohr/Publish-Docker-Github-Action@master
with:
@@ -131,6 +101,16 @@ jobs:
snapshot: true
dockerfile: build/docker/Dockerfile.logger
- name: Image region
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: registry.cn-beijing.aliyuncs.com/yunionio/region
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
registry: registry.cn-beijing.aliyuncs.com
snapshot: true
dockerfile: build/docker/Dockerfile.region
- name: Image scheduler
uses: elgohr/Publish-Docker-Github-Action@master
with:
@@ -201,6 +181,26 @@ jobs:
snapshot: true
dockerfile: build/docker/Dockerfile.notify
- name: Image host
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: registry.cn-beijing.aliyuncs.com/yunionio/host
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
registry: registry.cn-beijing.aliyuncs.com
snapshot: true
dockerfile: build/docker/Dockerfile.host
- name: Image host-deployer
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: registry.cn-beijing.aliyuncs.com/yunionio/host-deployer
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
registry: registry.cn-beijing.aliyuncs.com
snapshot: true
dockerfile: build/docker/Dockerfile.host-deployer
- name: Image cloudevent
uses: elgohr/Publish-Docker-Github-Action@master
with:

1
.gitignore vendored
View File

@@ -30,7 +30,6 @@ _output
/relay
/structargtest
.idea
.vscode
GPATH
GRTAGS
GTAGS

View File

@@ -10,7 +10,7 @@ BUILD_SCRIPT := $(ROOT_DIR)/build/build.sh
ifeq ($(ONECLOUD_CI_BUILD),)
GIT_COMMIT := $(shell git rev-parse --short HEAD)
GIT_BRANCH := $(shell git name-rev --name-only HEAD)
GIT_VERSION := $(shell git describe --always --tags --abbrev=14 $(GIT_COMMIT)^{commit})
GIT_VERSION := $(shell git describe --tags --abbrev=14 $(GIT_COMMIT)^{commit})
GIT_TREE_STATE := $(shell s=`git status --porcelain 2>/dev/null`; if [ -z "$$s" ]; then echo "clean"; else echo "dirty"; fi)
BUILD_DATE := $(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
else
@@ -51,7 +51,6 @@ ifdef LIBQEMUIO_PATH
X_CGO_LDFLAGS := ${CGO_LDFLAGS_ENV} -laio -lqemuio -lpthread -L ${LIBQEMUIO_PATH}/src
endif
export GOOS ?= linux
export GO111MODULE:=on
export CGO_CFLAGS = ${X_CGO_CFLAGS}
export CGO_LDFLAGS = ${X_CGO_LDFLAGS}
@@ -76,7 +75,7 @@ install: prepare_dir
gencopyright:
@bash scripts/gencopyright.sh pkg cmd
@sh scripts/gencopyright.sh pkg cmd
test:
@go test $(GO_BUILD_FLAGS) $(shell go list ./... | egrep -v 'host-image|hostimage')
@@ -188,7 +187,7 @@ dep:
@$(MAKE) mod
mod:
go get -d $(patsubst %,%@master,$(shell GO111MODULE=on go mod edit -print | sed -n -e 's|.*\(yunion.io/x/[a-z].*\) v.*|\1|p'))
go get $(patsubst %,%@master,$(shell GO111MODULE=on go mod edit -print | sed -n -e 's|.*\(yunion.io/x/[a-z].*\) v.*|\1|p'))
go mod tidy
go mod vendor -v
@@ -291,15 +290,10 @@ gen-swagger: gen-swagger-check
$(ROOT_DIR)/scripts/codegen.py swagger-code
$(ROOT_DIR)/scripts/codegen.py swagger-yaml
swagger-serve-only:
swagger-serve: gen-swagger
$(ROOT_DIR)/scripts/codegen.py swagger-serve
swagger-serve: gen-model-api gen-swagger swagger-serve-only
swagger-site: gen-model-api gen-swagger
$(ROOT_DIR)/scripts/codegen.py swagger-site
.PHONY: gen-model-api-check gen-model-api gen-swagger-check gen-swagger swagger-serve swagger-site
.PHONY: gen-model-api-check gen-model-api gen-swagger-check gen-swagger swagger-serve
REGISTRY ?= "registry.cn-beijing.aliyuncs.com/yunionio"
VERSION ?= $(shell git describe --exact-match 2> /dev/null || \

View File

@@ -1,3 +1,3 @@
FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:1.0.0
FROM registry.cn-beijing.aliyuncs.com/yunionio/ansibleserver-base:latest
ADD ./_output/alpine-build/bin/ansibleserver /opt/yunion/bin/ansibleserver
ADD ./_output/bin/ansibleserver /opt/yunion/bin/ansibleserver

View File

@@ -1,11 +1,13 @@
FROM alpine:3.11.6
FROM frolvlad/alpine-glibc:glibc-2.28
MAINTAINER "Yousong Zhou <zhouyousong@yunionyun.com>"
MAINTAINER "Zexi Li <lizexi@yunionyun.com>"
# openssh-client, for ansible ssh connection
RUN set -x \
&& apk update \
&& apk add openssh-client \
&& apk add ansible \
&& apk add tzdata ca-certificates \
&& rm -rf /var/cache/apk/*
ENV TZ Asia/Shanghai
RUN mkdir -p /opt/yunion/bin
RUN apk update && \
apk add --no-cache tzdata ansible ca-certificates && \
rm -rf /var/cache/apk/*
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

View File

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

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
{{.os_type}} 镜像 {{.name}} 上传完成

View File

@@ -1,66 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<table style="width: 650px; margin-bottom: 20px;" border="0" cellpadding="0" cellspacing="0" align="center">
<tr style="height: 50px; background: #333; overflow: hidden;">
<td>
<table style="margin-left: 20px;">
<tr>
<td>
<img src="data:{{.login_logo_format}};base64,{{.login_logo}}" alt="" style="color: #fff; height: 32px; vertical-align: middle;">
</td>
</tr>
</table>
</td>
<td>
<table style="float: right;">
<tr>
<td style="padding-left: 20px; padding-right: 20px;">
<a href="" style="text-decoration: none; color: #20A0FF; font-size: 12px; display: none;">产品</a>
</td>
<td style="padding-left: 20px; padding-right: 20px;">
<a href="" style="text-decoration: none; color: #20A0FF; font-size: 12px; display: none;">解决方案</a>
</td>
<td style="padding-left: 20px; padding-right: 20px;">
<a href="" style="text-decoration: none; color: #20A0FF; font-size: 12px; display: none;">服务</a>
</td>
<td style="padding-left: 20px; padding-right: 20px;">
<a href="" style="text-decoration: none; color: #20A0FF; font-size: 12px; display: none;">帮助与文档</a>
</td>
<td style="padding-left: 20px; padding-right: 20px;">
<a href="" style="text-decoration: none; color: #20A0FF; font-size: 12px; display: none;">关于我们</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="width: 100%;" colspan="2">
<table style="padding: 20px 10px; width: 100%;">
<tr>
<td style="padding-bottom: 20px;">
亲爱的{{.name}},您好:
</td>
</tr>
<tr>
<td style="padding-bottom: 10px;">请点击下面的链接,完成用户邮箱的激活:</td>
</tr>
<tr>
<td style="padding-bottom: 30px;"><a href="{{.link}}">{{.link}}</a></td>
</tr>
</table>
</td>
</tr>
<tr style="width: 96%;">
<td colspan="2" style="border-top: 1px dashed #ccc; color: #333; font-size: 12px; padding-bottom: 10px; font-weight: 100;">*为了确保您的帐号安全该链接仅48小时内访问有效请勿直接回复此邮件。</td>
</tr>
<tr>
<td colspan="2" style="background: #333; text-align: right; padding-right: 20px; font-size: 12px; color: #fff; height: 50px;">版权所有 © {{.copyright}} 保留一切权利</td>
</tr>
</table>
</body>
</html>

View File

@@ -1 +0,0 @@
镜像 {{.name}} 上传完成

View File

@@ -1 +0,0 @@
Yunion Verify

View File

@@ -1,42 +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 shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type BillTasksCreateOptions struct {
options.BaseListOptions
CloudaccountId string `help:"cloudaccount Id" required:"true"`
StartDay int `help:"start day of billing cycle, example: 20060102"`
EndDay int `help:"end day of billing cycle, example: 20060102"`
}
R(&BillTasksCreateOptions{}, "bill-tasks-create", "create bill task",
func(s *mcclient.ClientSession, args *BillTasksCreateOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.BillTasks.Create(s, params)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -32,22 +32,12 @@ import (
func init() {
type BucketListOptions struct {
options.BaseListOptions
DistinctField string `help:"query specified distinct field"`
}
R(&BucketListOptions{}, "bucket-list", "List all buckets", func(s *mcclient.ClientSession, args *BucketListOptions) error {
params, err := options.ListStructToParams(args)
if err != nil {
return err
}
if len(args.DistinctField) > 0 {
params.Add(jsonutils.NewString(args.DistinctField), "extra_field")
result, err := modules.Buckets.Get(s, "distinct-field", params)
if err != nil {
return err
}
fmt.Println(result)
return nil
}
result, err := modules.Buckets.List(s, params)
if err != nil {
return err
@@ -56,10 +46,10 @@ func init() {
return nil
})
type BucketIdOptions struct {
type BucketShowOptions struct {
ID string `help:"ID or name of bucket"`
}
R(&BucketIdOptions{}, "bucket-show", "Id details of bucket", func(s *mcclient.ClientSession, args *BucketIdOptions) error {
R(&BucketShowOptions{}, "bucket-show", "Show details of bucket", func(s *mcclient.ClientSession, args *BucketShowOptions) error {
result, err := modules.Buckets.Get(s, args.ID, nil)
if err != nil {
return err
@@ -68,15 +58,6 @@ func init() {
return nil
})
R(&BucketIdOptions{}, "bucket-syncstatus", "Sync bucket statust", func(s *mcclient.ClientSession, args *BucketIdOptions) error {
result, err := modules.Buckets.PerformAction(s, args.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type BucketUpdateOptions struct {
ID string `help:"ID or name of bucket" json:"-"`
Name string `help:"new name of bucket" json:"name"`

View File

@@ -53,9 +53,6 @@ func init() {
type CloudaccountListOptions struct {
options.BaseListOptions
Capability []string `help:"capability filter" choices:"project|compute|network|loadbalancer|objectstore|rds|cache|event"`
DistinctField string `help:"distinct field"`
ProxySetting string `help:"Proxy setting id or name"`
}
R(&CloudaccountListOptions{}, "cloud-account-list", "List cloud accounts", func(s *mcclient.ClientSession, args *CloudaccountListOptions) error {
var params *jsonutils.JSONDict
@@ -68,18 +65,6 @@ func init() {
if len(args.Capability) > 0 {
params.Add(jsonutils.NewStringArray(args.Capability), "capability")
}
if len(args.ProxySetting) > 0 {
params.Add(jsonutils.NewString(args.ProxySetting), "proxy_setting")
}
}
if len(args.DistinctField) > 0 {
params.Add(jsonutils.NewString(args.DistinctField), "extra_field")
result, err := modules.Cloudaccounts.Get(s, "distinct-field", params)
if err != nil {
return err
}
fmt.Println(result)
return nil
}
result, err := modules.Cloudaccounts.List(s, params)
if err != nil {
@@ -753,129 +738,6 @@ func init() {
return nil
})
R(&options.SVMwareCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-vmware", "Update credential of a VMware cloud account", func(s *mcclient.ClientSession, args *options.SVMwareCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SAliyunCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-aliyun", "Update credential of an Aliyun cloud account", func(s *mcclient.ClientSession, args *options.SAliyunCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SAzureCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-azure", "Update credential of an Azure cloud account", func(s *mcclient.ClientSession, args *options.SAzureCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SQcloudCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-qcloud", "Update credential of a Qcloud cloud account", func(s *mcclient.ClientSession, args *options.SQcloudCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SAWSCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-aws", "Update credential of an AWS cloud account", func(s *mcclient.ClientSession, args *options.SAWSCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SOpenStackCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-openstack", "Update credential of an OpenStack cloud account", func(s *mcclient.ClientSession, args *options.SOpenStackCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SHuaweiCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-huawei", "Update credential of an Huawei cloud account", func(s *mcclient.ClientSession, args *options.SHuaweiCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SUcloudCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-ucloud", "Update credential of a Ucloud cloud account", func(s *mcclient.ClientSession, args *options.SUcloudCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SZStackCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-zstack", "Update credential of a ZStack cloud account", func(s *mcclient.ClientSession, args *options.SZStackCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SGoogleCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-google", "Update credential of a Google cloud account", func(s *mcclient.ClientSession, args *options.SGoogleCloudAccountUpdateCredentialOptions) error {
params, err := parseGcpCredential(args.GoogleJsonFile)
if err != nil {
return err
}
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SS3CloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-s3", "Update credential of a generic S3 cloud account", func(s *mcclient.ClientSession, args *options.SS3CloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.SCtyunCloudAccountUpdateCredentialOptions{}, "cloud-account-test-connectivity-ctyun", "Update credential of an Ctyun cloud account", func(s *mcclient.ClientSession, args *options.SCtyunCloudAccountUpdateCredentialOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "test-connectivity", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type CloudaccountSyncOptions struct {
ID string `help:"ID or Name of cloud account"`
Force bool `help:"Force sync no matter what"`
@@ -939,14 +801,10 @@ func init() {
})
type CloudaccountPublicOptions struct {
ID string `help:"ID or name of cloud account" json:"-"`
Scope string `help:"public_sccope" choices:"domain|system" json:"scope"`
SharedDomains []string `help:"shared domains" json:"shared_domains"`
ShareMode string `help:"share_mode" choices:"account_domain|provider_domain|system"`
ID string `help:"ID or name of cloud account"`
}
R(&CloudaccountPublicOptions{}, "cloud-account-public", "Mark this cloud account public ", func(s *mcclient.ClientSession, args *CloudaccountPublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "public", params)
result, err := modules.Cloudaccounts.PerformAction(s, args.ID, "public", nil)
if err != nil {
return err
}
@@ -1006,47 +864,4 @@ func init() {
printObject(result)
return nil
})
type ClouaccountChangeOwnerOptions struct {
ID string `help:"ID or name of cloudaccount" json:"-"`
ProjectDomain string `json:"project_domain" help:"target domain"`
}
R(&ClouaccountChangeOwnerOptions{}, "cloud-account-change-owner", "Change owner domain of cloudaccount", func(s *mcclient.ClientSession, args *ClouaccountChangeOwnerOptions) error {
if len(args.ProjectDomain) == 0 {
return fmt.Errorf("empty project_domain")
}
params := jsonutils.Marshal(args)
ret, err := modules.Cloudaccounts.PerformAction(s, args.ID, "change-owner", params)
if err != nil {
return err
}
printObject(ret)
return nil
})
type ClouaccountChangeProjectOptions struct {
ID string `help:"ID or name of cloudaccount" json:"-"`
PROJECT string `json:"project" help:"target domain"`
}
R(&ClouaccountChangeProjectOptions{}, "cloud-account-change-project", "Change domain/project of cloudaccount", func(s *mcclient.ClientSession, args *ClouaccountChangeProjectOptions) error {
if len(args.PROJECT) == 0 {
return fmt.Errorf("empty project")
}
params := jsonutils.Marshal(args)
ret, err := modules.Cloudaccounts.PerformAction(s, args.ID, "change-project", params)
if err != nil {
return err
}
printObject(ret)
return nil
})
R(&CloudaccountShowOptions{}, "cloud-account-change-owner-candidate-domains", "Show candiate domains of a cloud account changing project", func(s *mcclient.ClientSession, args *CloudaccountShowOptions) error {
result, err := modules.Cloudaccounts.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -1,60 +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 shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type CloudproviderQuotaListOptions struct {
options.BaseListOptions
Cloudregion string `help:"ID or Name of Cloudregion"`
QuotaType string `help:"Quota type"`
QuotaRange string `help:"Quota range" choices:"cloudregion|cloudprovider"`
}
R(&CloudproviderQuotaListOptions{}, "cloud-provider-quota-list", "List cloudprovider quota", func(s *mcclient.ClientSession, args *CloudproviderQuotaListOptions) error {
params, err := args.Params()
if err != nil {
return err
}
if len(args.QuotaType) > 0 {
params.Add(jsonutils.NewString(args.QuotaType), "quota_type")
}
if len(args.QuotaRange) > 0 {
params.Add(jsonutils.NewString(args.QuotaRange), "quota_range")
}
if len(args.Cloudregion) > 0 {
params.Add(jsonutils.NewString(args.Cloudregion), "cloudregion")
}
result, err := modules.CloudproviderQuotas.List(s, params)
if err != nil {
return err
}
printList(result, modules.CloudproviderQuotas.GetColumns(s))
return nil
})
}

View File

@@ -27,8 +27,6 @@ func init() {
type CloudproviderRegionListOptions struct {
options.BaseListOptions
Region string `help:"ID or Name of Host"`
Capability []string `help:"capability filter" choices:"project|compute|network|loadbalancer|objectstore|rds|cache|event"`
}
R(&CloudproviderRegionListOptions{}, "cloud-provider-region-list", "List cloudprovider region synchronization status", func(s *mcclient.ClientSession, args *CloudproviderRegionListOptions) error {
var params *jsonutils.JSONDict

View File

@@ -34,7 +34,6 @@ func init() {
HasObjectStorage bool `help:"filter cloudproviders that has object storage"`
NoObjectStorage bool `help:"filter cloudproviders that has no object storage"`
Capability []string `help:"capability filter" choices:"project|compute|network|loadbalancer|objectstore|rds|cache|event"`
Cloudregion string `help:"filter cloudproviders by cloudregion"`
}
R(&CloudproviderListOptions{}, "cloud-provider-list", "List cloud providers", func(s *mcclient.ClientSession, args *CloudproviderListOptions) error {
var params *jsonutils.JSONDict
@@ -58,10 +57,6 @@ func init() {
if len(args.Capability) > 0 {
params.Add(jsonutils.NewStringArray(args.Capability), "capability")
}
if len(args.Cloudregion) > 0 {
params.Add(jsonutils.NewString(args.Cloudregion), "cloudregion")
}
}
result, err := modules.Cloudproviders.List(s, params)
if err != nil {
@@ -250,13 +245,4 @@ func init() {
printObject(result)
return nil
})
R(&CloudproviderShowOptions{}, "cloud-provider-change-owner-candidate-domains", "Show candiate domains of a cloud provider changing owner", func(s *mcclient.ClientSession, args *CloudproviderShowOptions) error {
result, err := modules.Cloudproviders.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -15,8 +15,6 @@
package shell
import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
@@ -34,25 +32,12 @@ func init() {
Service string `help:"List regions which service has available skus" choices:"dbinstances|servers"`
City string `help:"List regions in the specified city"`
Capability []string `help:"capability filter" choices:"project|compute|network|loadbalancer|objectstore|rds|cache|event"`
DistinctField string `help:"list the specified distinct field, e.g. city, region"`
}
R(&CloudregionListOptions{}, "cloud-region-list", "List cloud regions", func(s *mcclient.ClientSession, opts *CloudregionListOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
}
if len(opts.DistinctField) > 0 {
params.Add(jsonutils.NewString(opts.DistinctField), "extra_field")
result, err := modules.Cloudregions.Get(s, "distinct-field", params)
if err != nil {
return err
}
fmt.Println(result)
return nil
}
result, err := modules.Cloudregions.List(s, params)
if err != nil {
return err

View File

@@ -38,11 +38,7 @@ func init() {
if err != nil {
return err
}
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.DBInstanceBackups.GetColumns(s))
} else {
printList(result, modules.DBInstanceBackups.GetColumns(s))
}
printList(result, modules.DBInstanceBackups.GetColumns(s))
return nil
})
@@ -84,15 +80,6 @@ func init() {
return nil
})
R(&DBInstanceBackupIdOptions{}, "dbinstance-backup-syncstatus", "Sync DB instance backup status", func(s *mcclient.ClientSession, opts *DBInstanceBackupIdOptions) error {
result, err := modules.DBInstanceBackups.PerformAction(s, opts.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&DBInstanceBackupIdOptions{}, "dbinstance-backup-delete", "Delete DB instance backup", func(s *mcclient.ClientSession, opts *DBInstanceBackupIdOptions) error {
result, err := modules.DBInstanceBackups.Delete(s, opts.ID, nil)
if err != nil {

View File

@@ -41,12 +41,7 @@ func init() {
if err != nil {
return err
}
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.DBInstance.GetColumns(s))
} else {
printList(result, modules.DBInstance.GetColumns(s))
}
printList(result, modules.DBInstance.GetColumns(s))
return nil
})
@@ -263,24 +258,6 @@ func init() {
return nil
})
R(&DBInstanceIdOptions{}, "dbinstance-syncstatus", "Sync status for DB instance", func(s *mcclient.ClientSession, opts *DBInstanceIdOptions) error {
result, err := modules.DBInstance.PerformAction(s, opts.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&DBInstanceIdOptions{}, "dbinstance-sync", "Sync conf from cloud dbinstance", func(s *mcclient.ClientSession, opts *DBInstanceIdOptions) error {
result, err := modules.DBInstance.PerformAction(s, opts.ID, "sync", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&DBInstanceIdOptions{}, "dbinstance-sync-status", "Sync status for DB instance", func(s *mcclient.ClientSession, opts *DBInstanceIdOptions) error {
result, err := modules.DBInstance.PerformAction(s, opts.ID, "sync-status", nil)
if err != nil {

View File

@@ -107,7 +107,7 @@ func init() {
R(
&options.DevtoolTemplateBindingOptions{},
"devtooltemplate-unbind",
"UnBinding devtool template to a host/vm",
"Binding devtool template to a host/vm",
func(s *mcclient.ClientSession, opts *options.DevtoolTemplateBindingOptions) error {
params := jsonutils.NewDict()
params.Set("server_id", jsonutils.NewString(opts.ServerID))

View File

@@ -133,15 +133,6 @@ func init() {
return nil
})
R(&DiskDetailOptions{}, "disk-syncstatus", "Sync status for disk", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
ret, e := modules.Disks.PerformAction(s, args.ID, "syncstatus", nil)
if e != nil {
return e
}
printObject(ret)
return nil
})
type DiskUpdateOptions struct {
ID string `help:"ID or name of disk"`
Name string `help:"New name of disk"`
@@ -291,14 +282,4 @@ func init() {
printObject(srv)
return nil
})
R(&DiskDetailOptions{}, "disk-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *DiskDetailOptions) error {
result, err := modules.Disks.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

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 shell
import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
)
func init() {
type DistinctFieldOption struct {
MODULE string `help:"module name"`
FIELD string `help:"distinct field name to query"`
}
R(&DistinctFieldOption{}, "distinct-field", "Query values of a distinct field for a module", func(s *mcclient.ClientSession, args *DistinctFieldOption) 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.NewDict()
params.Add(jsonutils.NewString(args.FIELD), "extra_field")
result, err := mod.Get(s, "distinct-field", params)
if err != nil {
return err
}
fmt.Println(result)
return nil
})
}

View File

@@ -83,8 +83,6 @@ func init() {
Desc string `help:"Description"`
Enabled bool `help:"Set the domain enabled"`
Disabled bool `help:"Set the domain disabled"`
Displayname string `help:"display name"`
}
R(&DomainCreateOptions{}, "domain-create", "Create a new domain", func(s *mcclient.ClientSession, args *DomainCreateOptions) error {
params := jsonutils.NewDict()
@@ -97,9 +95,6 @@ func init() {
} else if !args.Enabled && args.Disabled {
params.Add(jsonutils.JSONFalse, "enabled")
}
if len(args.Displayname) > 0 {
params.Add(jsonutils.NewString(args.Displayname), "displayname")
}
result, err := modules.Domains.Create(s, params)
if err != nil {
return err
@@ -115,8 +110,6 @@ func init() {
Enabled bool `help:"Set the domain enabled"`
Disabled bool `help:"Set the domain disabled"`
Driver string `help:"Set the domain Driver"`
Displayname string `help:"display name"`
}
R(&DomainUpdateOptions{}, "domain-update", "Update a domain", func(s *mcclient.ClientSession, args *DomainUpdateOptions) error {
obj, err := modules.Domains.Get(s, args.ID, nil)
@@ -143,9 +136,6 @@ func init() {
} else if !args.Enabled && args.Disabled {
params.Add(jsonutils.JSONFalse, "enabled")
}
if len(args.Displayname) > 0 {
params.Add(jsonutils.NewString(args.Displayname), "displayname")
}
result, err := modules.Domains.Patch(s, objId, params)
if err != nil {
return err

View File

@@ -75,16 +75,6 @@ func init() {
return nil
})
R(&options.ElasticCacheIdOptions{}, "elastic-cache-syncstatus", "Sync elastisc cache instance status", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
result, err := modules.ElasticCache.PerformAction(s, opts.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.ElasticCacheIdOptions{}, "elastic-cache-delete", "Delete elastisc cache instance", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
result, err := modules.ElasticCache.Delete(s, opts.ID, nil)
if err != nil {

View File

@@ -170,15 +170,6 @@ func init() {
return nil
})
R(&EipSingleOptions{}, "eip-syncstatus", "Synchronize status of an EIP", func(s *mcclient.ClientSession, args *EipSingleOptions) error {
result, err := modules.Elasticips.PerformAction(s, args.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type ServerCreateEipOptions struct {
ID string `help:"server ID or name"`
BW int `help:"EIP bandwidth in Mbps"`

View File

@@ -64,15 +64,14 @@ func init() {
})
type EndpointCreateOptions struct {
SERVICE string `help:"Service ID or Name"`
REGION string `help:"Region"`
INTERFACE string `help:"Interface types" choices:"internal|public|admin|console"`
URL string `help:"URL"`
Zone string `help:"Zone"`
Name string `help:"Name"`
Enabled bool `help:"Enabled"`
Disabled bool `help:"Disabled"`
ServiceCertificate string `help:"Service certificate id or name"`
SERVICE string `help:"Service ID or Name"`
REGION string `help:"Region"`
INTERFACE string `help:"Interface types" choices:"internal|public|admin|console"`
URL string `help:"URL"`
Zone string `help:"Zone"`
Name string `help:"Name"`
Enabled bool `help:"Enabled"`
Disabled bool `help:"Disabled"`
}
R(&EndpointCreateOptions{}, "endpoint-create", "Create endpoint", func(s *mcclient.ClientSession, args *EndpointCreateOptions) error {
params := jsonutils.NewDict()
@@ -96,9 +95,6 @@ func init() {
} else if !args.Enabled && args.Disabled {
params.Add(jsonutils.JSONFalse, "enabled")
}
if len(args.ServiceCertificate) > 0 {
params.Add(jsonutils.NewString(args.ServiceCertificate), "service_certificate")
}
ep, err := modules.EndpointsV3.Create(s, params)
if err != nil {
return err
@@ -108,12 +104,11 @@ func init() {
})
type EndpointUpdateOptions struct {
ID string `help:"ID or name of endpoint"`
Url string `help:"URL"`
Name string `help:"Name"`
Enabled bool `help:"Enabled"`
Disabled bool `help:"Disabled"`
ServiceCertificate string `help:"Service certificate id or name"`
ID string `help:"ID or name of endpoint"`
Url string `help:"URL"`
Name string `help:"Name"`
Enabled bool `help:"Enabled"`
Disabled bool `help:"Disabled"`
}
R(&EndpointUpdateOptions{}, "endpoint-update", "Update a endpoint", func(s *mcclient.ClientSession, args *EndpointUpdateOptions) error {
params := jsonutils.NewDict()
@@ -128,9 +123,6 @@ func init() {
} else if !args.Enabled && args.Disabled {
params.Add(jsonutils.JSONFalse, "enabled")
}
if len(args.ServiceCertificate) > 0 {
params.Add(jsonutils.NewString(args.ServiceCertificate), "service_certificate")
}
ep, err := modules.EndpointsV3.Patch(s, args.ID, params)
if err != nil {
return err

View File

@@ -34,8 +34,8 @@ type BaseEventListOptions struct {
OrderBy string `help:"order by specific field"`
Action []string `help:"Log action"`
User string `help:"filter by operator user"`
Project string `help:"filter by owner project"`
User []string `help:"filter by operator user"`
Project []string `help:"filter by owner project"`
PagingMarker string `help:"marker for pagination"`
}
@@ -99,10 +99,10 @@ func doEventList(man modulebase.ResourceManager, s *mcclient.ClientSession, args
params.Add(jsonutils.NewStringArray(args.Action), "action")
}
if len(args.User) > 0 {
params.Add(jsonutils.NewString(args.User), "user")
params.Add(jsonutils.NewStringArray(args.User), "user")
}
if len(args.Project) > 0 {
params.Add(jsonutils.NewString(args.Project), "project")
params.Add(jsonutils.NewStringArray(args.Project), "project")
}
if len(args.Scope) > 0 {
params.Add(jsonutils.NewString(args.Scope), "scope")
@@ -216,11 +216,6 @@ func init() {
return doIdentityEventList(s, &nargs)
})
R(&TypeEventListOptions{}, "idp-event", "Show operation event logs of keystone identity provider", func(s *mcclient.ClientSession, args *TypeEventListOptions) error {
nargs := EventListOptions{BaseEventListOptions: args.BaseEventListOptions, Id: args.ID, Type: []string{"identity_provider"}}
return doIdentityEventList(s, &nargs)
})
R(&TypeEventListOptions{}, "project-event", "Show operation event logs of keystone projects", func(s *mcclient.ClientSession, args *TypeEventListOptions) error {
nargs := EventListOptions{BaseEventListOptions: args.BaseEventListOptions, Id: args.ID, Type: []string{"project"}}
return doIdentityEventList(s, &nargs)

View File

@@ -15,8 +15,6 @@
package shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
@@ -50,32 +48,4 @@ func init() {
printObject(result)
return nil
})
type GlobalVpcPublicOptions struct {
ID string `help:"ID or name of global vpc" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain"`
SharedDomains []string `help:"share to domains"`
}
R(&GlobalVpcPublicOptions{}, "global-vpc-public", "Make global vpc public", func(s *mcclient.ClientSession, args *GlobalVpcPublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.GlobalVpcs.PerformAction(s, args.ID, "public", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type GlobalVpcPrivateOptions struct {
ID string `help:"ID or name of global vpc" json:"-"`
}
R(&GlobalVpcPrivateOptions{}, "global-vpc-private", "Make global vpc private", func(s *mcclient.ClientSession, args *GlobalVpcPrivateOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.GlobalVpcs.PerformAction(s, args.ID, "private", params)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -224,29 +224,4 @@ func init() {
printObject(sp)
return nil
})
type GroupAddUsersOptions struct {
GROUP string `help:"group Id or Name" json:"-"`
USER []string `help:"list of user id or name" json:"user"`
}
R(&GroupAddUsersOptions{}, "group-add-users", "Add users into group",
func(s *mcclient.ClientSession, args *GroupAddUsersOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Groups.PerformAction(s, args.GROUP, "add-users", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&GroupAddUsersOptions{}, "group-remove-users", "Add users into group",
func(s *mcclient.ClientSession, args *GroupAddUsersOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Groups.PerformAction(s, args.GROUP, "remove-users", params)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -203,36 +203,6 @@ func init() {
return nil
})
R(&HostListOptions{}, "host-node-count", "Get host node count", func(s *mcclient.ClientSession, opts *HostListOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
}
if opts.Empty {
params.Add(jsonutils.JSONTrue, "is_empty")
} else if opts.Occupied {
params.Add(jsonutils.JSONFalse, "is_empty")
}
if opts.Enabled {
params.Add(jsonutils.NewInt(1), "enabled")
} else if opts.Disabled {
params.Add(jsonutils.NewInt(0), "enabled")
}
if len(opts.Uuid) > 0 {
params.Add(jsonutils.NewString(opts.Uuid), "uuid")
}
if len(opts.Sn) > 0 {
params.Add(jsonutils.NewString(opts.Sn), "sn")
}
result, err := modules.Hosts.Get(s, "node-count", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type HostUpdateOptions struct {
ID string `help:"ID or Name of Host"`
Name string `help:"New name of the host"`
@@ -736,83 +706,4 @@ func init() {
}
return nil
})
type HostChangeOwnerOptions struct {
ID string `help:"ID or name of host" json:"-"`
ProjectDomain string `json:"project_domain" help:"target domain"`
}
R(&HostChangeOwnerOptions{}, "host-change-owner", "Change owner domain of host", func(s *mcclient.ClientSession, args *HostChangeOwnerOptions) error {
if len(args.ProjectDomain) == 0 {
return fmt.Errorf("empty project_domain")
}
params := jsonutils.Marshal(args)
ret, err := modules.Hosts.PerformAction(s, args.ID, "change-owner", params)
if err != nil {
return err
}
printObject(ret)
return nil
})
type HostPublicOptions struct {
ID string `help:"ID or name of host" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain"`
SharedDomains []string `help:"share to domains"`
}
R(&HostPublicOptions{}, "host-public", "Make a host public", func(s *mcclient.ClientSession, args *HostPublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Hosts.PerformAction(s, args.ID, "public", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type HostPrivateOptions struct {
ID string `help:"ID or name of host" json:"-"`
}
R(&HostPrivateOptions{}, "host-private", "Make a host private", func(s *mcclient.ClientSession, args *HostPrivateOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Hosts.PerformAction(s, args.ID, "private", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type HostChangeOwnerCandidateDomainsOptions struct {
ID string `help:"ID or name of host"`
}
R(&HostChangeOwnerCandidateDomainsOptions{}, "host-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *HostChangeOwnerCandidateDomainsOptions) error {
result, err := modules.Hosts.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type HostAutoMigrateOnHostDownOptions struct {
ID string `help:"ID or name of host"`
Enable bool `help:"enable auto migrate"`
Disable bool `help:"disable auto migrate"`
}
R(&HostAutoMigrateOnHostDownOptions{}, "host-auto-migrate-on-host-down", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *HostAutoMigrateOnHostDownOptions) error {
params := jsonutils.NewDict()
if args.Disable {
params.Set("auto_migrate_on_host_down", jsonutils.NewString("disable"))
} else if args.Enable {
params.Set("auto_migrate_on_host_down", jsonutils.NewString("enable"))
} else {
return fmt.Errorf("missing input enable or disable")
}
result, err := modules.Hosts.PerformAction(s, args.ID, "auto-migrate-on-host-down", params)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -23,7 +23,6 @@ import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
"yunion.io/x/onecloud/pkg/util/shellutils"
)
func init() {
@@ -295,36 +294,4 @@ func init() {
return nil
})
type IdentityProviderConfigEditOptions struct {
IDP string `help:"identity provider name or ID"`
}
R(&IdentityProviderConfigEditOptions{}, "idp-config-edit", "Edit config yaml of an identity provider", func(s *mcclient.ClientSession, args *IdentityProviderConfigEditOptions) error {
params := jsonutils.NewDict()
params.Add(jsonutils.JSONTrue, "sensitive")
conf, err := modules.IdentityProviders.GetSpecific(s, args.IDP, "config", params)
if err != nil {
return err
}
confJson, err := conf.Get("config")
if err != nil {
return err
}
content, err := shellutils.Edit(confJson.YAMLString())
if err != nil {
return err
}
yamlJson, err := jsonutils.ParseYAML(content)
if err != nil {
return err
}
config := jsonutils.NewDict()
config.Add(yamlJson, "config")
nconf, err := modules.IdentityProviders.PerformAction(s, args.IDP, "config", config)
if err != nil {
return err
}
fmt.Println(nconf.PrettyString())
return nil
})
}

View File

@@ -34,7 +34,6 @@ type ImageOptionalOptions struct {
Unprotected bool `help:"Allow image to be deleted"`
Standard bool `help:"Mark image as a standard image"`
Nonstandard bool `help:"Mark image as a non-standard image"`
Public bool `help:"make image public"`
MinDisk int64 `help:"Disk size after expanded, in MB" metavar:"MIN_DISK_SIZE_MB"`
MinRam int64 `help:"Minimal memory size required" metavar:"MIN_RAM_MB"`
VirtualSize int64 `help:"Disk size after expanded, in MB"`
@@ -58,6 +57,7 @@ type ImageOptionalOptions struct {
func addImageOptionalOptions(s *mcclient.ClientSession, params *jsonutils.JSONDict, args ImageOptionalOptions) error {
if len(args.Format) > 0 {
params.Add(jsonutils.NewString("bare"), "container-format")
params.Add(jsonutils.NewString(args.Format), "disk-format")
}
if args.Protected && !args.Unprotected {
@@ -70,9 +70,6 @@ func addImageOptionalOptions(s *mcclient.ClientSession, params *jsonutils.JSONDi
} else if !args.Standard && args.Nonstandard {
params.Add(jsonutils.JSONFalse, "is_standard")
}
if args.Public {
params.Add(jsonutils.JSONTrue, "is_public")
}
if args.MinDisk > 0 {
params.Add(jsonutils.NewString(fmt.Sprintf("%d", args.MinDisk)), "min_disk")
}
@@ -143,7 +140,6 @@ func init() {
Protected string `help:"filter images by protected" choices:"true|false"`
IsUefi bool `help:"list uefi image"`
Format []string `help:"Disk formats"`
SubFormats []string `help:"Sub formats"`
Name string `help:"Name filter"`
}
R(&ImageListOptions{}, "image-list", "List images", func(s *mcclient.ClientSession, args *ImageListOptions) error {
@@ -174,14 +170,15 @@ func init() {
params.Add(jsonutils.NewString(args.Name), "name")
}
if len(args.Format) > 0 {
fs := jsonutils.NewArray()
for _, f := range args.Format {
fs.Add(jsonutils.NewString(f))
if len(args.Format) == 1 {
params.Add(jsonutils.NewString(args.Format[0]), "disk_format")
} else {
fs := jsonutils.NewArray()
for _, f := range args.Format {
fs.Add(jsonutils.NewString(f))
}
params.Add(fs, "disk_formats")
}
params.Add(fs, "disk_formats")
}
if len(args.SubFormats) > 0 {
params.Add(jsonutils.Marshal(args.SubFormats), "sub_formats")
}
result, err := modules.Images.List(s, params)
if err != nil {
@@ -247,6 +244,22 @@ func init() {
return nil
})
type ImageMembershipOptions struct {
IMAGE string `help:"ID or name of image to share"`
PROJECT string `help:"ID or name of project to share image with"`
}
type ImageMembershipAddOptions struct {
ImageMembershipOptions
CanShare bool `help:"Indicating whether the project can share the image with others"`
}
R(&ImageMembershipAddOptions{}, "image-add-project", "Add a project to private image's membership list", func(s *mcclient.ClientSession, args *ImageMembershipAddOptions) error {
return modules.Images.AddMembership(s, args.IMAGE, args.PROJECT, args.CanShare)
})
R(&ImageMembershipOptions{}, "image-remove-project", "Remove a project from private image's membership list", func(s *mcclient.ClientSession, args *ImageMembershipOptions) error {
return modules.Images.RemoveMembership(s, args.IMAGE, args.PROJECT)
})
type ImageDetailOptions struct {
ID string `help:"Image ID or name"`
}
@@ -265,6 +278,19 @@ func init() {
return nil
})
R(&ImageDetailOptions{}, "image-list-project", "List image members", func(s *mcclient.ClientSession, args *ImageDetailOptions) error {
imgId, e := modules.Images.GetId(s, args.ID, nil)
if e != nil {
return e
}
result, e := modules.Images.ListMemberProjects(s, imgId)
if e != nil {
return e
}
printList(result, modules.Projects.GetColumns(s))
return nil
})
type ImageCancelDeleteOptions struct {
ID string `help:"Image id or name" metavar:"IMAGE"`
}
@@ -390,12 +416,14 @@ func init() {
type ImagePublicOptions struct {
ID []string `help:"ID or name of image" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain|project"`
SharedProjects []string `help:"Share to projects"`
SharedDomains []string `help:"Share to domains"`
Scope string `help:"sharing scope" choices:"system|domain"`
ShareToProject []string `help:"Share to prject"`
}
R(&ImagePublicOptions{}, "image-public", "Make a image public", func(s *mcclient.ClientSession, args *ImagePublicOptions) error {
params := jsonutils.Marshal(args)
params, err := options.StructToParams(args)
if err != nil {
return err
}
if len(args.ID) == 0 {
return fmt.Errorf("No image ID provided")
} else if len(args.ID) == 1 {

View File

@@ -68,7 +68,7 @@ func init() {
type HistoricProcessInstanceStaticticsOptions struct {
ID string `help:"ID of user"`
}
R(&HistoricProcessInstanceStaticticsOptions{}, "historic-process-instance-statistics", "Show statistics for historic process instance", func(s *mcclient.ClientSession, args *HistoricProcessInstanceStaticticsOptions) error {
R(&HistoricProcessInstanceStaticticsOptions{}, "historic-process-instance-statistics", "Delete all contacts for the user", func(s *mcclient.ClientSession, args *HistoricProcessInstanceStaticticsOptions) error {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString(args.ID), "user_id")

View File

@@ -65,7 +65,7 @@ func init() {
printList(result, modules.LoadbalancerClusters.GetColumns(s))
return nil
})
R(&options.LoadbalancerClusterDeleteOptions{}, "lbcluster-delete", "Delete lbcluster", func(s *mcclient.ClientSession, opts *options.LoadbalancerClusterDeleteOptions) error {
R(&options.LoadbalancerClusterDeleteOptions{}, "lbcluster-delete", "Show lbcluster", func(s *mcclient.ClientSession, opts *options.LoadbalancerClusterDeleteOptions) error {
lbagent, err := modules.LoadbalancerClusters.Delete(s, opts.ID, nil)
if err != nil {
return err

View File

@@ -99,13 +99,4 @@ func init() {
return nil
})
R(&options.LoadbalancerGetOptions{}, "lb-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *options.LoadbalancerGetOptions) error {
result, err := modules.Loadbalancers.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -16,7 +16,6 @@ package shell
import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
@@ -44,12 +43,7 @@ func init() {
if err != nil {
return err
}
listResult := modulebase.ListResult{}
err = result.Unmarshal(&listResult)
if err != nil {
return err
}
printList(&listResult, []string{})
printObject(result)
return nil
})

View File

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

View File

@@ -1,53 +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 monitor
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules/monitor"
options "yunion.io/x/onecloud/pkg/mcclient/options/monitor"
)
func init() {
aN := cmdN("suggestsysalert")
R(&options.SuggestSysAlertListOptions{}, aN("list"), "List all suggestsysrules",
func(s *mcclient.ClientSession, args *options.SuggestSysAlertListOptions) error {
params, err := args.Params()
if err != nil {
return err
}
if len(args.Type) > 0 {
params.Add(jsonutils.NewString(args.Type), "type")
}
ret, err := monitor.SuggestSysAlertManager.List(s, params)
if err != nil {
return err
}
printList(ret, monitor.SuggestSysAlertManager.GetColumns(s))
return nil
})
R(&options.SSuggestAlertShowOptions{}, aN("show"), "Show details of a alert rule",
func(s *mcclient.ClientSession, args *options.SSuggestAlertShowOptions) error {
ret, err := monitor.SuggestSysAlertManager.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(ret)
return nil
})
}

View File

@@ -1,84 +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 monitor
import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules/monitor"
options "yunion.io/x/onecloud/pkg/mcclient/options/monitor"
)
func init() {
aN := cmdN("suggestsysrule")
R(&options.SuggestRuleListOptions{}, aN("list"), "List all suggestsysrules",
func(s *mcclient.ClientSession, args *options.SuggestRuleListOptions) error {
params, err := args.Params()
if err != nil {
return err
}
ret, err := monitor.SuggestSysRuleManager.List(s, params)
if err != nil {
return err
}
printList(ret, monitor.SuggestSysRuleManager.GetColumns(s))
return nil
})
R(&options.SuggestRuleCreateOptions{}, aN("create"), "Create suggestsys rule",
func(s *mcclient.ClientSession, args *options.SuggestRuleCreateOptions) error {
params, err := args.Params()
if err != nil {
return err
}
ret, err := monitor.SuggestSysRuleManager.Create(s, params)
if err != nil {
return err
}
printObject(ret)
return nil
})
R(&options.SuggestRuleShowOptions{}, aN("show"), "Show details of a alert rule",
func(s *mcclient.ClientSession, args *options.SuggestRuleShowOptions) error {
ret, err := monitor.SuggestSysRuleManager.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(ret)
return nil
})
R(&options.SuggestRuleUpdateOptions{}, aN("update"), "Update a alert rule",
func(s *mcclient.ClientSession, args *options.SuggestRuleUpdateOptions) error {
params, err := args.Params()
if err != nil {
return err
}
ret, err := monitor.SuggestSysRuleManager.Update(s, args.ID, params)
if err != nil {
return err
}
printObject(ret)
return nil
})
R(&options.SuggestRuleDeleteOptions{}, aN("delete"), "Delete alerts",
func(s *mcclient.ClientSession, args *options.SuggestRuleDeleteOptions) error {
ret := monitor.SuggestSysRuleManager.BatchDelete(s, args.ID, nil)
printBatchResults(ret, monitor.SuggestSysRuleManager.GetColumns(s))
return nil
})
}

View File

@@ -35,7 +35,7 @@ func init() {
return nil
})
R(&options.NatGatewayIdOptions{}, "natgateway-show", "Show a NAT gateway", func(s *mcclient.ClientSession, args *options.NatGatewayIdOptions) error {
R(&options.NatGatewayShowOptions{}, "natgateway-show", "Show a NAT gateway", func(s *mcclient.ClientSession, args *options.NatGatewayShowOptions) error {
results, err := modules.NatGateways.Get(s, args.ID, nil)
if err != nil {
return err
@@ -44,15 +44,6 @@ func init() {
return nil
})
R(&options.NatGatewayIdOptions{}, "natgateway-syncstatus", "Sync NAT gateway status", func(s *mcclient.ClientSession, args *options.NatGatewayIdOptions) error {
result, err := modules.NatGateways.PerformAction(s, args.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type NatGatewayListEipOptions struct {
ID string `help:"ID"`
}

View File

@@ -38,7 +38,6 @@ func init() {
City string `help:"search networks belongs to a city"`
Usable *bool `help:"search usable networks"`
ServerType string `help:"search networks belongs to a ServerType" choices:"guest|baremetal|container|pxe|ipmi"`
Schedtag string `help:"filter networks by schedtag"`
Status string `help:"filter by network status"`
}
@@ -56,11 +55,7 @@ func init() {
if err != nil {
return err
}
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.Networks.GetColumns(s))
} else {
printList(result, modules.Networks.GetColumns(s))
}
printList(result, modules.Networks.GetColumns(s))
return nil
})
@@ -144,10 +139,10 @@ func init() {
return nil
})
type NetworkIdOptions struct {
type NetworkShowOptions struct {
ID string `help:"ID or Name of the zone to show"`
}
R(&NetworkIdOptions{}, "network-show", "Show network details", func(s *mcclient.ClientSession, args *NetworkIdOptions) error {
R(&NetworkShowOptions{}, "network-show", "Show network details", func(s *mcclient.ClientSession, args *NetworkShowOptions) error {
result, err := modules.Networks.Get(s, args.ID, nil)
if err != nil {
return err
@@ -156,7 +151,7 @@ func init() {
return nil
})
R(&NetworkIdOptions{}, "network-metadata", "Show metadata of a network", func(s *mcclient.ClientSession, args *NetworkIdOptions) error {
R(&NetworkShowOptions{}, "network-metadata", "Show metadata of a network", func(s *mcclient.ClientSession, args *NetworkShowOptions) error {
result, err := modules.Networks.GetMetadata(s, args.ID, nil)
if err != nil {
return err
@@ -165,7 +160,7 @@ func init() {
return nil
})
R(&NetworkIdOptions{}, "network-private", "Make a network private", func(s *mcclient.ClientSession, args *NetworkIdOptions) error {
R(&NetworkShowOptions{}, "network-private", "Make a network private", func(s *mcclient.ClientSession, args *NetworkShowOptions) error {
result, err := modules.Networks.PerformAction(s, args.ID, "private", nil)
if err != nil {
return err
@@ -174,23 +169,16 @@ func init() {
return nil
})
R(&NetworkIdOptions{}, "network-syncstatus", "Sync network status", func(s *mcclient.ClientSession, args *NetworkIdOptions) error {
result, err := modules.Networks.PerformAction(s, args.ID, "syncstatus", nil)
type NetworkShareOptions struct {
NetworkShowOptions
Scope string `help:"sharing scope" choices:"system|domain"`
ShareToProject []string `help:"Share to prject"`
}
R(&NetworkShareOptions{}, "network-public", "Make a network public", func(s *mcclient.ClientSession, args *NetworkShareOptions) error {
params, err := options.StructToParams(args)
if err != nil {
return err
}
printObject(result)
return nil
})
type NetworkShareOptions struct {
NetworkIdOptions
Scope string `help:"sharing scope" choices:"system|domain|project"`
SharedProjects []string `help:"Share to prjects"`
SharedDomains []string `help:"share to domains"`
}
R(&NetworkShareOptions{}, "network-public", "Make a network public", func(s *mcclient.ClientSession, args *NetworkShareOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Networks.PerformAction(s, args.ID, "public", params)
if err != nil {
return err
@@ -199,7 +187,7 @@ func init() {
return nil
})
R(&NetworkIdOptions{}, "network-delete", "Delete a network", func(s *mcclient.ClientSession, args *NetworkIdOptions) error {
R(&NetworkShowOptions{}, "network-delete", "Delete a network", func(s *mcclient.ClientSession, args *NetworkShowOptions) error {
result, err := modules.Networks.Delete(s, args.ID, nil)
if err != nil {
return err
@@ -208,7 +196,7 @@ func init() {
return nil
})
R(&NetworkIdOptions{}, "network-purge", "Purge a managed network, not delete the remote entity", func(s *mcclient.ClientSession, args *NetworkIdOptions) error {
R(&NetworkShowOptions{}, "network-purge", "Purge a managed network, not delete the remote entity", func(s *mcclient.ClientSession, args *NetworkShowOptions) error {
result, err := modules.Networks.PerformAction(s, args.ID, "purge", nil)
if err != nil {
return err
@@ -401,30 +389,4 @@ func init() {
printObject(result)
return nil
})
R(&NetworkIdOptions{}, "network-change-owner-candidate-domains", "Show candiate domains of a network for changing owner", func(s *mcclient.ClientSession, args *NetworkIdOptions) error {
result, err := modules.Networks.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type NetworkChangeOwnerOptions struct {
ID string `help:"Network to change owner" json:"-"`
PROJECT string `help:"Project ID or change" json:"tenant"`
}
R(&NetworkChangeOwnerOptions{}, "network-change-owner", "Change owner project of a network", func(s *mcclient.ClientSession, args *NetworkChangeOwnerOptions) error {
params, err := options.StructToParams(args)
if err != nil {
return err
}
net, err := modules.Networks.PerformAction(s, args.ID, "change-owner", params)
if err != nil {
return err
}
printObject(net)
return nil
})
}

View File

@@ -173,7 +173,7 @@ func init() {
NAME string `help:"The name of parameter"`
}
R(&ParametersDeleteOptions{}, "parameter-delete", "delete parameter", func(s *mcclient.ClientSession, args *ParametersDeleteOptions) error {
R(&ParametersDeleteOptions{}, "parameter-delete", "delete notice", func(s *mcclient.ClientSession, args *ParametersDeleteOptions) error {
params := jsonutils.NewDict()
var parameter jsonutils.JSONObject

View File

@@ -15,7 +15,6 @@
package shell
import (
"context"
"fmt"
"io/ioutil"
"strings"
@@ -137,14 +136,11 @@ func init() {
R(&PolicyPatchOptions{}, "policy-patch", "Patch policy", updateFunc)
R(&PolicyPatchOptions{}, "policy-update", "Update policy", updateFunc)
type PolicyPublicOptions struct {
ID string `help:"ID of policy to update" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain"`
SharedDomains []string `help:"share to domains"`
type PolicyPerformOptions struct {
ID string `help:"ID of policy to update"`
}
R(&PolicyPublicOptions{}, "policy-public", "Mark a policy public", func(s *mcclient.ClientSession, args *PolicyPublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Policies.PerformAction(s, args.ID, "public", params)
R(&PolicyPerformOptions{}, "policy-public", "Mark a policy public", func(s *mcclient.ClientSession, args *PolicyPerformOptions) error {
result, err := modules.Policies.PerformAction(s, args.ID, "public", nil)
if err != nil {
return err
}
@@ -152,10 +148,7 @@ func init() {
return nil
})
type PolicyPrivateOptions struct {
ID string `help:"ID of policy to update" json:"-"`
}
R(&PolicyPrivateOptions{}, "policy-private", "Mark a policy private", func(s *mcclient.ClientSession, args *PolicyPrivateOptions) error {
R(&PolicyPerformOptions{}, "policy-private", "Mark a policy private", func(s *mcclient.ClientSession, args *PolicyPerformOptions) error {
result, err := modules.Policies.PerformAction(s, args.ID, "private", nil)
if err != nil {
return err
@@ -191,7 +184,11 @@ func init() {
if err != nil {
return err
}
printObject(result)
yaml, err := result.GetString("policy")
if err != nil {
return err
}
fmt.Println(yaml)
return nil
})
@@ -383,7 +380,7 @@ func init() {
token = s.GetToken()
}
result, err := policy.ExplainRpc(context.Background(), token, req, args.Name)
result, err := policy.PolicyManager.ExplainRpc(token, req, args.Name)
if err != nil {
return err
}

View File

@@ -1,59 +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 shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type PolicyListOptions struct {
options.BaseListOptions
Policydefinition string `help:"filter by policydefinition"`
}
R(&PolicyListOptions{}, "policy-assignment-list", "List policy assignments", func(s *mcclient.ClientSession, args *PolicyListOptions) error {
params, err := args.Params()
if err != nil {
return err
}
if len(args.Policydefinition) > 0 {
params.Add(jsonutils.NewString(args.Policydefinition), "policydefinition")
}
result, err := modules.PolicyAssignment.List(s, params)
if err != nil {
return err
}
printList(result, modules.PolicyAssignment.GetColumns(s))
return nil
})
type PolicyIdOptions struct {
ID string `help:"policy assignment id or name"`
}
R(&PolicyIdOptions{}, "policy-assignment-show", "Show policy assignment details", func(s *mcclient.ClientSession, args *PolicyIdOptions) error {
result, err := modules.PolicyAssignment.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -1,62 +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 shell
import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type PolicyListOptions struct {
options.BaseListOptions
}
R(&PolicyListOptions{}, "policy-definition-list", "List policy definitions", func(s *mcclient.ClientSession, args *PolicyListOptions) error {
params, err := args.Params()
if err != nil {
return err
}
result, err := modules.PolicyDefinition.List(s, params)
if err != nil {
return err
}
printList(result, modules.PolicyDefinition.GetColumns(s))
return nil
})
type PolicyIdOptions struct {
ID string `help:"policy definition name or id"`
}
R(&PolicyIdOptions{}, "policy-definition-show", "Show policy definition", func(s *mcclient.ClientSession, args *PolicyIdOptions) error {
result, err := modules.PolicyDefinition.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&PolicyIdOptions{}, "policy-definition-syncstatus", "Sync policy definition status", func(s *mcclient.ClientSession, args *PolicyIdOptions) error {
result, err := modules.PolicyDefinition.PerformAction(s, args.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -82,12 +82,11 @@ func init() {
})
type ProjectCreateOptions struct {
NAME string `help:"Name of new project"`
Displayname string `help:"display name"`
Domain string `help:"Domain"`
Desc string `help:"Description"`
Enabled bool `help:"Project is enabled"`
Disabled bool `help:"Project is disabled"`
NAME string `help:"Name of new project"`
Domain string `help:"Domain"`
Desc string `help:"Description"`
Enabled bool `help:"Project is enabled"`
Disabled bool `help:"Project is disabled"`
}
R(&ProjectCreateOptions{}, "project-create", "Create a project", func(s *mcclient.ClientSession, args *ProjectCreateOptions) error {
params := jsonutils.NewDict()
@@ -107,9 +106,6 @@ func init() {
if len(args.Desc) > 0 {
params.Add(jsonutils.NewString(args.Desc), "description")
}
if len(args.Displayname) > 0 {
params.Add(jsonutils.NewString(args.Displayname), "displayname")
}
result, err := modules.Projects.Create(s, params)
if err != nil {
return err

View File

@@ -15,8 +15,6 @@
package shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
@@ -80,22 +78,4 @@ func init() {
printObject(proxysetting)
return nil
})
R(&options.ProxySettingPublicOptions{}, "proxysetting-public", "Make proxysetting public", func(s *mcclient.ClientSession, opts *options.ProxySettingPublicOptions) error {
params := jsonutils.Marshal(opts)
result, err := modules.ProxySettings.PerformAction(s, opts.ID, "public", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.ProxySettingPrivateOptions{}, "proxysetting-private", "Make proxysetting private", func(s *mcclient.ClientSession, opts *options.ProxySettingPrivateOptions) error {
params := jsonutils.Marshal(opts)
result, err := modules.ProxySettings.PerformAction(s, opts.ID, "private", params)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -94,25 +94,6 @@ type ImageQuotaOptions struct {
Image int64 `help:"Template count" json:"image,omitzero"`
}
type DomainQuotaOptions struct {
Cloudaccount int64 `help:"cloudaccount count" json:"cloudaccount,omitzero"`
}
type InfrasQuotaOptions struct {
RegionQuotaKeys
Host int64 `help:"host count" json:"host,omitzero"`
Vpc int64 `help:"vpc count" json:"vpc,omitzero"`
}
type IdentityQuotaOptions struct {
User int64 `help:"user count" json:"user,omitzero"`
Group int64 `help:"group count" json:"group,omitzero"`
Project int64 `help:"project count" json:"project,omitzero"`
Role int64 `help:"role count" json:"role,omitzero"`
Policy int64 `help:"policy count" json:"policy,omitzero"`
}
type QuotaSetBaseOptions struct {
Project string `help:"Tenant name or ID to set quota" json:"tenant,omitempty"`
Domain string `help:"Domain name or ID to set quota" json:"domain,omitempty"`
@@ -186,33 +167,6 @@ func init() {
printQuotaList(quotas)
return nil
})
R(&QuotaOptions{}, "domain-quota", "Show domain-quota for current domain", func(s *mcclient.ClientSession, args *QuotaOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.DomainQuotas.GetQuota(s, params)
if err != nil {
return err
}
printQuotaList(result)
return nil
})
R(&QuotaOptions{}, "infras-quota", "Show infras-quota for current domain", func(s *mcclient.ClientSession, args *QuotaOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.InfrasQuotas.GetQuota(s, params)
if err != nil {
return err
}
printQuotaList(result)
return nil
})
R(&QuotaOptions{}, "identity-quota", "Show identity-quota for current domain", func(s *mcclient.ClientSession, args *QuotaOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.IdentityQuotas.GetQuota(s, params)
if err != nil {
return err
}
printQuotaList(result)
return nil
})
type ComputeQuotaSetOptions struct {
QuotaSetBaseOptions
@@ -284,48 +238,6 @@ func init() {
return nil
})
type DomainQuotaSetOptions struct {
QuotaSetBaseOptions
DomainQuotaOptions
}
R(&DomainQuotaSetOptions{}, "domain-quota-set", "Set domain quota for domain", func(s *mcclient.ClientSession, args *DomainQuotaSetOptions) error {
params := jsonutils.Marshal(args)
quotas, e := modules.DomainQuotas.DoQuotaSet(s, params)
if e != nil {
return e
}
printQuotaList(quotas)
return nil
})
type InfrasQuotaSetOptions struct {
QuotaSetBaseOptions
InfrasQuotaOptions
}
R(&InfrasQuotaSetOptions{}, "infras-quota-set", "Set infrastructure quota for domain", func(s *mcclient.ClientSession, args *InfrasQuotaSetOptions) error {
params := jsonutils.Marshal(args)
quotas, e := modules.InfrasQuotas.DoQuotaSet(s, params)
if e != nil {
return e
}
printQuotaList(quotas)
return nil
})
type IdentityQuotaSetOptions struct {
QuotaSetBaseOptions
IdentityQuotaOptions
}
R(&IdentityQuotaSetOptions{}, "identity-quota-set", "Set identity quota for domain", func(s *mcclient.ClientSession, args *InfrasQuotaSetOptions) error {
params := jsonutils.Marshal(args)
quotas, e := modules.IdentityQuotas.DoQuotaSet(s, params)
if e != nil {
return e
}
printQuotaList(quotas)
return nil
})
type QuotaListOptions struct {
ProjectDomain string `help:"domain name or ID to query project quotas"`
Refresh bool `help:"refresh" json:"refresh,omitfalse"`
@@ -381,36 +293,6 @@ func init() {
return nil
})
R(&QuotaListOptions{}, "domain-quota-list", "List domain quota of domains", func(s *mcclient.ClientSession, args *QuotaListOptions) error {
params := jsonutils.Marshal(args)
result, e := modules.DomainQuotas.GetQuotaList(s, params)
if e != nil {
return e
}
printQuotaList(result)
return nil
})
R(&QuotaListOptions{}, "infras-quota-list", "List infrastructure quota of domains", func(s *mcclient.ClientSession, args *QuotaListOptions) error {
params := jsonutils.Marshal(args)
result, e := modules.InfrasQuotas.GetQuotaList(s, params)
if e != nil {
return e
}
printQuotaList(result)
return nil
})
R(&QuotaListOptions{}, "identity-quota-list", "List identity quota of domains", func(s *mcclient.ClientSession, args *QuotaListOptions) error {
params := jsonutils.Marshal(args)
result, e := modules.IdentityQuotas.GetQuotaList(s, params)
if e != nil {
return e
}
printQuotaList(result)
return nil
})
type CleanPendingUsageOptions struct {
Scope string `help:"scope" choices:"domain|project"`
Project string `help:"Tenant name or ID" json:"tenant"`
@@ -461,30 +343,4 @@ func init() {
return nil
})
R(&CleanPendingUsageOptions{}, "clean-domain-pending-usage", "Clean pending usage for project or domain", func(s *mcclient.ClientSession, args *CleanPendingUsageOptions) error {
params := jsonutils.Marshal(args)
_, err := modules.DomainQuotas.DoCleanPendingUsage(s, params)
if err != nil {
return err
}
return nil
})
R(&CleanPendingUsageOptions{}, "clean-infras-pending-usage", "Clean pending usage for project or domain", func(s *mcclient.ClientSession, args *CleanPendingUsageOptions) error {
params := jsonutils.Marshal(args)
_, err := modules.InfrasQuotas.DoCleanPendingUsage(s, params)
if err != nil {
return err
}
return nil
})
R(&CleanPendingUsageOptions{}, "clean-identity-pending-usage", "Clean pending usage for project or domain", func(s *mcclient.ClientSession, args *CleanPendingUsageOptions) error {
params := jsonutils.Marshal(args)
_, err := modules.IdentityQuotas.DoCleanPendingUsage(s, params)
if err != nil {
return err
}
return nil
})
}

View File

@@ -85,8 +85,6 @@ func init() {
NAME string `help:"Role name"`
Domain string `help:"Domain"`
Desc string `help:"Description"`
PublicScope string `help:"public scope" choices:"none|system"`
}
R(&RoleCreateOptions{}, "role-create", "Create a new role", func(s *mcclient.ClientSession, args *RoleCreateOptions) error {
params := jsonutils.NewDict()
@@ -101,9 +99,6 @@ func init() {
if len(args.Desc) > 0 {
params.Add(jsonutils.NewString(args.Desc), "description")
}
if len(args.PublicScope) > 0 {
params.Add(jsonutils.NewString(args.PublicScope), "public_scope")
}
role, err := modules.RolesV3.Create(s, params)
if err != nil {
return err

View File

@@ -121,7 +121,7 @@ func init() {
printObjectRecursive(routetable)
return nil
})
R(&options.RouteTableDeleteOptions{}, "routetable-delete", "Delete routetable", func(s *mcclient.ClientSession, opts *options.RouteTableDeleteOptions) error {
R(&options.RouteTableDeleteOptions{}, "routetable-delete", "Show routetable", func(s *mcclient.ClientSession, opts *options.RouteTableDeleteOptions) error {
routetable, err := modules.RouteTables.Delete(s, opts.ID, nil)
if err != nil {
return err

View File

@@ -1,41 +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 shell
import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type ScalingActivityListOptions struct {
options.BaseListOptions
}
R(&ScalingActivityListOptions{}, "scaling-activity-list", "List Scaling Activity",
func(s *mcclient.ClientSession, args *ScalingActivityListOptions) error {
params, err := options.ListStructToParams(args)
if err != nil {
return err
}
list, err := modules.ScalingActivity.List(s, params)
if err != nil {
return err
}
printList(list, modules.ScalingActivity.GetColumns(s))
return nil
},
)
}

View File

@@ -1,145 +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 shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type ScalingGroupListOptions struct {
options.BaseListOptions
Hypervisor string `help:"Hypervisor"`
Cloudregion string `help:"Cloudregion"`
Network string `help:"network"`
}
R(&ScalingGroupListOptions{}, "scaling-group-list", "List scaling group", func(s *mcclient.ClientSession, args *ScalingGroupListOptions) error {
params, err := options.ListStructToParams(args)
if err != nil {
return err
}
result, err := modules.ScalingGroup.List(s, params)
if err != nil {
return err
}
printList(result, modules.ScalingGroup.GetColumns(s))
return nil
})
type ScalingGroupShowOptions struct {
ID string
}
R(&ScalingGroupShowOptions{}, "scaling-group-show", "Show scaling group", func(s *mcclient.ClientSession,
args *ScalingGroupShowOptions) error {
result, err := modules.ScalingGroup.Get(s, args.ID, nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type ScalingGroupCreateOptions struct {
NAME string
Hypervisor string
Cloudregion string
Network string
GuestTemplate string
MinInstanceNumber string
MaxInstanceNumber string
DesireInstanceNumber string
Loadbalance string
}
R(&ScalingGroupCreateOptions{}, "scaling-group-create", "Create scaling group", func(s *mcclient.ClientSession, args *ScalingGroupCreateOptions) error {
params := jsonutils.Marshal(args).(*jsonutils.JSONDict)
scalingGroup, err := modules.ScalingGroup.Create(s, params)
if err != nil {
return err
}
printObject(scalingGroup)
return nil
})
type ScalingGroupDeleteOptions struct {
ID string `help:"ScalingGroup ID or Name"`
}
R(&ScalingGroupDeleteOptions{}, "scaling-group-delete", "Delete Scaling Group", func(s *mcclient.ClientSession,
args *ScalingGroupDeleteOptions) error {
scalingGroup, err := modules.ScalingGroup.Delete(s, args.ID, jsonutils.NewDict())
if err != nil {
return err
}
printObject(scalingGroup)
return nil
})
type ScalingGroupListInstanceOptions struct {
ID string `help:"ScalingGroup ID or Name"`
}
R(&ScalingGroupListInstanceOptions{}, "scaling-group-list-instance", "List all instance of Scaling Group",
func(s *mcclient.ClientSession, args *ScalingGroupListInstanceOptions) error {
params := jsonutils.NewDict()
params.Set("scaling_group", jsonutils.NewString(args.ID))
servers, err := modules.Servers.List(s, params)
if err != nil {
return err
}
printList(servers, modules.Servers.GetColumns(s))
return nil
},
)
type ScalingGroupRemoveInstanceOptions struct {
ID string `help:"ScalingGroup ID or Name"`
SERVER string `help:"Server ID or Name"`
Delete bool `help:"If delete the server"`
}
R(&ScalingGroupRemoveInstanceOptions{}, "scaling-group-remove-instance", "Remove instance of ScalingGroup",
func(s *mcclient.ClientSession, args *ScalingGroupRemoveInstanceOptions) error {
params := jsonutils.NewDict()
params.Set("scaling_group", jsonutils.NewString(args.ID))
params.Set("delete_server", jsonutils.NewBool(args.Delete))
server, err := modules.Servers.PerformAction(s, args.SERVER, "detach-scaling-group", params)
if err != nil {
return err
}
printObject(server)
return nil
},
)
type ScalingGroupEnableOptions struct {
ID string `help:"ScalingGroup ID or Name"`
}
R(&ScalingGroupEnableOptions{}, "scaling-group-enable", "Enable ScalingGroup", func(s *mcclient.ClientSession,
args *ScalingGroupEnableOptions) error {
ret, err := modules.ScalingGroup.PerformAction(s, args.ID, "enable", jsonutils.NewDict())
if err != nil {
return err
}
printObject(ret)
return nil
})
R(&ScalingGroupEnableOptions{}, "scaling-group-disable", "Disable ScalingGroup", func(s *mcclient.ClientSession,
args *ScalingGroupEnableOptions) error {
ret, err := modules.ScalingGroup.PerformAction(s, args.ID, "disable", jsonutils.NewDict())
if err != nil {
return err
}
printObject(ret)
return nil
})
}

View File

@@ -1,188 +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 shell
import (
"time"
"yunion.io/x/jsonutils"
api "yunion.io/x/onecloud/pkg/apis/compute"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type ScalingPolicyListOptions struct {
options.BaseListOptions
ScalingGroup string `help:"ScalingGroup ID or Name"`
TriggerType string `help:"Trigger type" choices:"alarm|timing|cycle"`
}
R(&ScalingPolicyListOptions{}, "scaling-policy-list", "List Scaling Policy", func(s *mcclient.ClientSession,
args *ScalingPolicyListOptions) error {
params, err := options.ListStructToParams(args)
policies, err := modules.ScalingPolicy.List(s, params)
if err != nil {
return err
}
printList(policies, modules.ScalingPolicy.GetColumns(s))
return nil
})
type ScalingPolicyShowOptions struct {
ID string `help:"ScalingPolicy ID or Name"`
}
R(&ScalingPolicyShowOptions{}, "scaling-policy-show", "Show Scaling Policy", func(s *mcclient.ClientSession,
args *ScalingPolicyShowOptions) error {
params := jsonutils.NewDict()
params.Set("details", jsonutils.JSONTrue)
policy, err := modules.ScalingPolicy.Get(s, args.ID, params)
if err != nil {
return err
}
printObject(policy)
return nil
})
type ScalingTimer struct {
TimingExecTime time.Time `help:"Exectime for 'timing' type trigger" json:"exec_time"`
}
type ScalingCycleTimer struct {
CycleCycleType string `help:"Cycle type for 'cycle' type trigger" json:"cycle_type"`
CycleMinute int `help:"Minute of 'cycle' type trigger" json:"minute"`
CycleHour int `help:"Hour of 'cycle' type trigger" json:"hour"`
CycleWeekdays []int `help:"Weekdays for 'cycle' type trigger" json:"weekdays"`
CycleMonthDays []int `help:"Month days for 'cycle' type trigger" json:"month_days"`
CycleStartTime time.Time `help:"Start time for 'cycle' type trigger" json:"start_time"`
CycleEndTime time.Time `help:"End time for 'cycle' type trigger" json:"end_time"`
}
type ScalingAlarm struct {
AlarmCumulate int `help:"Cumulate times alarm will trigger, for 'alarm' trigger" json:"cumulate"`
AlarmCycle int `help:"Monitoring cycle for indicators, for 'alarm' trigger" json:"cycle"`
AlarmIndicator string `help:"Indicator for 'alarm' trigger" json:"indicator"`
AlarmWrapper string `help:"Wrapper for Indicators" choices:"max|min|average" json:"wrapper"`
AlarmOperator string `help:"Operator between Indicator and Operator" json:"operator"`
AlarmValue float64 `help:"Value of Indicator" json:"value"`
}
type ScalingPolicyCreateOptions struct {
NAME string `help:"ScalingPolicy Name" json:"name"`
ScalingGroup string `help:"ScalingGroup ID or Name" json:"scaling_group"`
TriggerType string `help:"Trigger type" choices:"alarm|timing|cycle" json:"trigger_type"`
ScalingTimer
ScalingCycleTimer
ScalingAlarm
Action string `help:"Action for scaling policy" choices:"add|remove|set" json:"action"`
Number int `help:"Instance number for action" json:"number"`
Unit string `help:"Unit for Number" choices:"s|%" json:"unit"`
CoolingTime int `help:"Cooling time, unit: s" json:"cooling_time"`
}
R(&ScalingPolicyCreateOptions{}, "scaling-policy-create", "Create Scaling Policy",
func(s *mcclient.ClientSession, args *ScalingPolicyCreateOptions) error {
spCreateInput := api.ScalingPolicyCreateInput{
ScalingGroup: args.ScalingGroup,
TriggerType: args.TriggerType,
Timer: api.ScalingTimerCreateInput{
args.TimingExecTime,
},
CycleTimer: api.ScalingCycleTimerCreateInput{
CycleType: args.CycleCycleType,
Minute: args.CycleMinute,
Hour: args.CycleHour,
WeekDays: args.CycleWeekdays,
MonthDays: args.CycleMonthDays,
StartTime: args.CycleStartTime,
EndTime: args.CycleEndTime,
},
Alarm: api.ScalingAlarmCreateInput{
Cumulate: args.AlarmCumulate,
Cycle: args.AlarmCycle,
Indicator: args.AlarmIndicator,
Wrapper: args.AlarmWrapper,
Operator: args.AlarmOperator,
Value: args.AlarmValue,
},
Action: args.Action,
Number: args.Number,
Unit: args.Unit,
CoolingTime: args.CoolingTime,
}
spCreateInput.Name = args.NAME
ret, err := modules.ScalingPolicy.Create(s, jsonutils.Marshal(spCreateInput))
if err != nil {
return err
}
printObject(ret)
return nil
},
)
type ScalingPolicyEnableOptions struct {
ID string `help:"ScalingPolicy ID or Name"`
}
R(&ScalingPolicyEnableOptions{}, "scaling-policy-enable", "Enable ScalingPolicy", func(s *mcclient.ClientSession,
args *ScalingPolicyEnableOptions) error {
ret, err := modules.ScalingPolicy.PerformAction(s, args.ID, "enable", jsonutils.NewDict())
if err != nil {
return err
}
printObject(ret)
return nil
})
R(&ScalingPolicyEnableOptions{}, "scaling-policy-disable", "Disable ScalingPolicy",
func(s *mcclient.ClientSession, args *ScalingPolicyEnableOptions) error {
ret, err := modules.ScalingPolicy.PerformAction(s, args.ID, "disable", jsonutils.NewDict())
if err != nil {
return err
}
printObject(ret)
return nil
},
)
type ScalingPolicyTriggerOptions struct {
ID string `help:"ScalingPolicy ID or Name"`
}
R(&ScalingPolicyTriggerOptions{}, "scaling-policy-trigger", "Trigger ScalingPolicy's action",
func(s *mcclient.ClientSession, args *ScalingPolicyTriggerOptions) error {
ret, err := modules.ScalingPolicy.PerformAction(s, args.ID, "trigger", jsonutils.NewDict())
if err != nil {
return err
}
printObject(ret)
return nil
},
)
type ScalingPolicyDeleteOptions struct {
ID string `help:"ScalingPolicy ID or Name"`
}
R(&ScalingPolicyDeleteOptions{}, "scaling-policy-delete", "Delete SclaingPolicy",
func(s *mcclient.ClientSession, args *ScalingPolicyDeleteOptions) error {
ret, err := modules.ScalingPolicy.Delete(s, args.ID, jsonutils.NewDict())
if err != nil {
return err
}
printObject(ret)
return nil
},
)
}

View File

@@ -25,20 +25,33 @@ import (
func init() {
type SecGroupRulesListOptions struct {
options.BaseListOptions
Secgroup string `help:"Secgroup ID or Name"`
SecgroupName string `help:"Search rules by fuzzy secgroup name"`
Project string `help:"Filter rules by project"`
Direction string `help:"filter Direction of rule" choices:"in|out"`
Protocol string `help:"filter Protocol of rule" choices:"any|tcp|udp|icmp"`
Action string `help:"filter Actin of rule" choices:"allow|deny"`
Ports string `help:"filter Ports of rule"`
Ip string `help:"filter cidr of rule"`
Secgroup string `help:"Secgroup ID or Name"`
Direction string `help:"filter Direction of rule" choices:"in|out"`
Protocol string `help:"filter Protocol of rule" choices:"any|tcp|udp|icmp"`
Action string `help:"filter Actin of rule" choices:"allow|deny"`
}
R(&SecGroupRulesListOptions{}, "secgroup-rule-list", "List all security group", func(s *mcclient.ClientSession, args *SecGroupRulesListOptions) error {
params, err := options.ListStructToParams(args)
if err != nil {
return err
var params *jsonutils.JSONDict
{
var err error
params, err = args.BaseListOptions.Params()
if err != nil {
return err
}
}
if len(args.Secgroup) > 0 {
params.Add(jsonutils.NewString(args.Secgroup), "secgroup")
}
if len(args.Direction) > 0 {
params.Add(jsonutils.NewString(args.Direction), "direction")
}
if len(args.Protocol) > 0 {
params.Add(jsonutils.NewString(args.Protocol), "protocol")
}
if len(args.Action) > 0 {
params.Add(jsonutils.NewString(args.Action), "action")
}
result, err := modules.SecGroupRules.List(s, params)
if err != nil {
@@ -60,7 +73,7 @@ func init() {
return nil
})
R(&SecGroupRuleDetailOptions{}, "secgroup-rule-delete", "Delete a secgroup rule", func(s *mcclient.ClientSession, args *SecGroupRuleDetailOptions) error {
R(&SecGroupRuleDetailOptions{}, "secgroup-rule-delete", "Delete a disk", func(s *mcclient.ClientSession, args *SecGroupRuleDetailOptions) error {
if rule, e := modules.SecGroupRules.Delete(s, args.ID, nil); e != nil {
return e
} else {

View File

@@ -29,15 +29,23 @@ func init() {
Equals string `help:"Secgroup ID or Name, filter secgroups whose rules equals the specified one"`
Server string `help:"Filter secgroups bound to specified server"`
options.BaseListOptions
Ip string `help:"Filter secgroup by ip"`
Ports string `help:"Filter secgroup by ports"`
Direction string `help:"Filter secgroup by ports" choices:"all|in|out"`
}
R(&SecGroupsListOptions{}, "secgroup-list", "List all security group", func(s *mcclient.ClientSession, args *SecGroupsListOptions) error {
params, err := options.ListStructToParams(args)
if err != nil {
return err
var params *jsonutils.JSONDict
{
var err error
params, err = args.BaseListOptions.Params()
if err != nil {
return err
}
}
if len(args.Equals) > 0 {
params.Add(jsonutils.NewString(args.Equals), "equals")
}
if len(args.Server) > 0 {
params.Add(jsonutils.NewString(args.Server), "server")
}
result, err := modules.SecGroups.List(s, params)
if err != nil {

View File

@@ -1306,58 +1306,4 @@ func init() {
}
return nil
})
type ServerPublicipToEip struct {
ID string `help:"ID or name of VM" json:"-"`
AutoStart bool `help:"Auto start new guest"`
}
R(&ServerPublicipToEip{}, "server-publicip-to-eip", "Convert PublicIp to Eip for server", func(s *mcclient.ClientSession, opts *ServerPublicipToEip) error {
params := jsonutils.NewDict()
params.Set("auto_start", jsonutils.NewBool(opts.AutoStart))
result, err := modules.Servers.PerformAction(s, opts.ID, "publicip-to-eip", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type ServerSetAutoRenew struct {
ID string `help:"ID or name of VM" json:"-"`
AutoRenew bool `help:"Set server auto renew or manual renew"`
}
R(&ServerSetAutoRenew{}, "server-set-auto-renew", "Set autorenew for server", func(s *mcclient.ClientSession, opts *ServerSetAutoRenew) error {
params := jsonutils.NewDict()
params.Set("auto_renew", jsonutils.NewBool(opts.AutoRenew))
result, err := modules.Servers.PerformAction(s, opts.ID, "set-auto-renew", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.ServerConvertToKvmOptions{}, "server-convert-to-kvm", "Convert esxi server to kvm", func(s *mcclient.ClientSession, opts *options.ServerConvertToKvmOptions) error {
params := jsonutils.Marshal(opts)
dict := params.(*jsonutils.JSONDict)
dict.Set("target_hypervisor", jsonutils.NewString("kvm"))
result, err := modules.Servers.PerformAction(s, opts.ID, "convert", dict)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&options.ServerShowOptions{}, "server-change-owner-candidate-domains", "Get change owner candidate domain list", func(s *mcclient.ClientSession, args *options.ServerShowOptions) error {
result, err := modules.Servers.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -1,72 +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 shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
type ServerSecgroupListOptions struct {
options.BaseListOptions
Server string `help:"ID or Name of Server"`
Secgroup string `help:"Secgroup ID or name"`
}
R(&ServerSecgroupListOptions{}, "server-secgroup-list", "List server secgroup pairs", func(s *mcclient.ClientSession, args *ServerSecgroupListOptions) error {
var params *jsonutils.JSONDict
{
var err error
params, err = args.BaseListOptions.Params()
if err != nil {
return err
}
}
var result *modulebase.ListResult
var err error
if len(args.Server) > 0 {
result, err = modules.Serversecgroups.ListDescendent(s, args.Server, params)
} else if len(args.Secgroup) > 0 {
result, err = modules.Serversecgroups.ListDescendent2(s, args.Secgroup, params)
} else {
result, err = modules.Serversecgroups.List(s, params)
}
if err != nil {
return err
}
printList(result, modules.Serversecgroups.GetColumns(s))
return nil
})
type ServerSecgroupDetailOptions struct {
SERVER string `help:"ID or Name of Server"`
SECGROUP string `help:"ID or Name of Security Group"`
}
R(&ServerSecgroupDetailOptions{}, "server-secgroup-show", "Show server security group details", func(s *mcclient.ClientSession, args *ServerSecgroupDetailOptions) error {
query := jsonutils.NewDict()
result, err := modules.Serversecgroups.Get(s, args.SERVER, args.SECGROUP, query)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -1,60 +0,0 @@
package shell
import (
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
)
func init() {
R(&options.ServiceCertificateCreateOptions{}, "service-cert-create", "Create service cert", func(s *mcclient.ClientSession, opts *options.ServiceCertificateCreateOptions) error {
params, err := opts.Params()
if err != nil {
return err
}
cert, err := modules.ServiceCertificatesV3.Create(s, params)
if err != nil {
return err
}
printObject(cert)
return nil
})
type ServiceCertificateGetOptions struct {
ID string `json:"-"`
}
R(&ServiceCertificateGetOptions{}, "service-cert-show", "Show service cert", func(s *mcclient.ClientSession, opts *ServiceCertificateGetOptions) error {
cert, err := modules.ServiceCertificatesV3.Get(s, opts.ID, nil)
if err != nil {
return err
}
printObject(cert)
return nil
})
type ServiceCertificateListOptions struct {
options.BaseListOptions
}
R(&ServiceCertificateListOptions{}, "service-cert-list", "List service certs", func(s *mcclient.ClientSession, opts *ServiceCertificateListOptions) error {
params, err := options.ListStructToParams(opts)
if err != nil {
return err
}
result, err := modules.ServiceCertificatesV3.List(s, params)
if err != nil {
return err
}
printList(result, modules.ServiceCertificatesV3.GetColumns(s))
return nil
})
type ServiceCertificateDeleteOptions struct {
ID string `json:"-"`
}
R(&ServiceCertificateDeleteOptions{}, "service-cert-delete", "Delete service cert", func(s *mcclient.ClientSession, opts *ServiceCertificateDeleteOptions) error {
cert, err := modules.ServiceCertificatesV3.Delete(s, opts.ID, nil)
if err != nil {
return err
}
printObject(cert)
return nil
})
}

View File

@@ -43,10 +43,10 @@ func init() {
query.Add(jsonutils.NewInt(args.Offset), "offset")
}
if len(args.Name) > 0 {
query.Add(jsonutils.NewString(args.Name), "name")
query.Add(jsonutils.NewString(args.Name), "name__icontains")
}
if len(args.Type) > 0 {
query.Add(jsonutils.NewString(args.Type), "type")
query.Add(jsonutils.NewString(args.Type), "type__icontains")
}
if len(args.Search) > 0 {
query.Add(jsonutils.NewString(args.Search), "search")

View File

@@ -25,15 +25,13 @@ import (
func init() {
type ServerSkusListOptions struct {
options.BaseListOptions
Cloudregion string `help:"region Id or name"`
Usable bool `help:"Filter usable sku"`
Zone string `help:"zone Id or name"`
City *string `help:"city name,eg. BeiJing"`
Cpu *int `help:"Cpu core count" json:"cpu_core_count"`
Mem *int `help:"Memory size in MB" json:"memory_size_mb"`
Name string `help:"Name of Sku"`
PostpaidStatus string `help:"Postpaid status" choices:"soldout|available"`
PrepaidStatus string `help:"Prepaid status" choices:"soldout|available"`
Cloudregion string `help:"region Id or name"`
Usable bool `help:"Filter usable sku"`
Zone string `help:"zone Id or name"`
City *string `help:"city name,eg. BeiJing"`
Cpu *int `help:"Cpu core count" json:"cpu_core_count"`
Mem *int `help:"Memory size in MB" json:"memory_size_mb"`
Name string `help:"Name of Sku"`
}
R(&ServerSkusListOptions{}, "server-sku-list", "List all avaiable Server SKU", func(s *mcclient.ClientSession, args *ServerSkusListOptions) error {

View File

@@ -66,10 +66,10 @@ func init() {
printObject(result)
return nil
})
type SnapshotIdOptions struct {
type SnapshotShowOptions struct {
ID string `help:"ID or Name of snapshot"`
}
R(&SnapshotIdOptions{}, "snapshot-show", "Show snapshot details", func(s *mcclient.ClientSession, args *SnapshotIdOptions) error {
R(&SnapshotShowOptions{}, "snapshot-show", "Show snapshot details", func(s *mcclient.ClientSession, args *SnapshotShowOptions) error {
result, err := modules.Snapshots.Get(s, args.ID, nil)
if err != nil {
return err
@@ -78,16 +78,10 @@ func init() {
return nil
})
R(&SnapshotIdOptions{}, "snapshot-syncstatus", "Sync snapshot status", func(s *mcclient.ClientSession, args *SnapshotIdOptions) error {
result, err := modules.Snapshots.PerformAction(s, args.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&SnapshotIdOptions{}, "snapshot-purge", "Purge Snapshot db records", func(s *mcclient.ClientSession, args *SnapshotIdOptions) error {
type SnapshotPurgeOptions struct {
ID string `help:"ID or name of Snapshot"`
}
R(&SnapshotPurgeOptions{}, "snapshot-purge", "Purge Snapshot db records", func(s *mcclient.ClientSession, args *SnapshotPurgeOptions) error {
result, err := modules.Snapshots.PerformAction(s, args.ID, "purge", nil)
if err != nil {
return err

View File

@@ -29,12 +29,11 @@ func init() {
type StorageListOptions struct {
options.BaseListOptions
Share *bool `help:"Share storage list"`
Local *bool `help:"Local storage list"`
Usable *bool `help:"Usable storage list"`
Zone string `help:"List storages in zone" json:"-"`
Region string `help:"List storages in region"`
Schedtag string `help:"filter storage by schedtag"`
Share *bool `help:"Share storage list"`
Local *bool `help:"Local storage list"`
Usable *bool `help:"Usable storage list"`
Zone string `help:"List storages in zone" json:"-"`
Region string `help:"List storages in region"`
}
R(&StorageListOptions{}, "storage-list", "List storages", func(s *mcclient.ClientSession, opts *StorageListOptions) error {
params, err := options.ListStructToParams(opts)
@@ -216,63 +215,4 @@ func init() {
printObject(storage)
return nil
})
type StorageChangeOwnerOptions struct {
ID string `help:"ID or name of storage" json:"-"`
ProjectDomain string `json:"project_domain" help:"target domain"`
}
R(&StorageChangeOwnerOptions{}, "storage-change-owner", "Change owner domain of storage", func(s *mcclient.ClientSession, args *StorageChangeOwnerOptions) error {
if len(args.ProjectDomain) == 0 {
return fmt.Errorf("empty project_domain")
}
params := jsonutils.Marshal(args)
ret, err := modules.Storages.PerformAction(s, args.ID, "change-owner", params)
if err != nil {
return err
}
printObject(ret)
return nil
})
type StorageForceDetachHost struct {
ID string `help:"ID or name of storage" json:"-"`
Host string `help:"ID or name of host"`
}
R(&StorageForceDetachHost{}, "storage-public", "Force detach host", func(s *mcclient.ClientSession, args *StorageForceDetachHost) error {
params := jsonutils.Marshal(args)
result, err := modules.Storages.PerformAction(s, args.ID, "force-detach-host", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type StoragePublicOptions struct {
ID string `help:"ID or name of storage" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain"`
SharedDomains []string `help:"share to domains"`
}
R(&StoragePublicOptions{}, "storage-public", "Make a storage public", func(s *mcclient.ClientSession, args *StoragePublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Storages.PerformAction(s, args.ID, "public", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type StoragePrivateOptions struct {
ID string `help:"ID or name of storage" json:"-"`
}
R(&StoragePrivateOptions{}, "storage-private", "Make a storage private", func(s *mcclient.ClientSession, args *StoragePrivateOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Storages.PerformAction(s, args.ID, "private", params)
if err != nil {
return err
}
printObject(result)
return nil
})
}

View File

@@ -40,11 +40,7 @@ func init() {
if err != nil {
return err
}
if len(args.ExportFile) > 0 {
exportList(result, args.ExportFile, args.ExportKeys, args.ExportTexts, modules.UsersV3.GetColumns(s))
} else {
printList(result, modules.UsersV3.GetColumns(s))
}
printList(result, modules.UsersV3.GetColumns(s))
return nil
})

View File

@@ -15,8 +15,6 @@
package shell
import (
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
@@ -49,11 +47,7 @@ func init() {
return err
}
if len(opts.ExportFile) > 0 {
exportList(result, opts.ExportFile, opts.ExportKeys, opts.ExportTexts, modules.Vpcs.GetColumns(s))
} else {
printList(result, modules.Vpcs.GetColumns(s))
}
printList(result, modules.Vpcs.GetColumns(s))
return nil
})
@@ -174,67 +168,4 @@ func init() {
printObject(result)
return nil
})
R(&VpcUpdateStatusOptions{}, "vpc-syncstatus", "Sync the status of a vpc", func(s *mcclient.ClientSession, args *VpcUpdateStatusOptions) error {
result, err := modules.Vpcs.PerformAction(s, args.ID, "syncstatus", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type VpcPublicOptions struct {
ID string `help:"ID or name of vpc" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain"`
SharedDomains []string `help:"share to domains"`
}
R(&VpcPublicOptions{}, "vpc-public", "Make vpc public", func(s *mcclient.ClientSession, args *VpcPublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Vpcs.PerformAction(s, args.ID, "public", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type VpcPrivateOptions struct {
ID string `help:"ID or name of vpc" json:"-"`
}
R(&VpcPrivateOptions{}, "vpc-private", "Make vpc private", func(s *mcclient.ClientSession, args *VpcPrivateOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Vpcs.PerformAction(s, args.ID, "private", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&VpcShowOptions{}, "vpc-change-owner-candidate-domains", "Show candiate domains of a vpc for changing owner", func(s *mcclient.ClientSession, args *VpcShowOptions) error {
result, err := modules.Vpcs.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
type VpcChangeOwnerOptions struct {
ID string `help:"ID or name of vpc" json:"-"`
ProjectDomain string `json:"project_domain" help:"target domain"`
}
R(&VpcChangeOwnerOptions{}, "vpc-change-owner", "Change owner domain of vpc", func(s *mcclient.ClientSession, args *VpcChangeOwnerOptions) error {
if len(args.ProjectDomain) == 0 {
return fmt.Errorf("empty project_domain")
}
params := jsonutils.Marshal(args)
ret, err := modules.Vpcs.PerformAction(s, args.ID, "change-owner", params)
if err != nil {
return err
}
printObject(ret)
return nil
})
}

View File

@@ -22,11 +22,11 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/utils"
webconsole_api "yunion.io/x/onecloud/pkg/apis/webconsole"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
o "yunion.io/x/onecloud/pkg/mcclient/options"
"yunion.io/x/onecloud/pkg/webconsole/command"
"yunion.io/x/onecloud/pkg/webconsole/session"
)
const (
@@ -61,8 +61,8 @@ func init() {
}
protocol := query.Get("protocol")
if !utils.IsInStringArray(protocol, []string{
command.PROTOCOL_TTY, webconsole_api.VNC,
webconsole_api.SPICE, webconsole_api.WMKS,
command.PROTOCOL_TTY, session.VNC,
session.SPICE, session.WMKS,
}) {
fmt.Println(connParams)
return nil

View File

@@ -132,41 +132,4 @@ func init() {
printObject(result)
return nil
})
type WirePublicOptions struct {
ID string `help:"ID or name of wire" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain"`
SharedDomains []string `help:"share to domains"`
}
R(&WirePublicOptions{}, "wire-public", "Make wire public", func(s *mcclient.ClientSession, args *WirePublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Wires.PerformAction(s, args.ID, "public", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type WirePrivateOptions struct {
ID string `help:"ID or name of wire" json:"-"`
}
R(&WirePrivateOptions{}, "wire-private", "Make wire private", func(s *mcclient.ClientSession, args *WirePrivateOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.Wires.PerformAction(s, args.ID, "private", params)
if err != nil {
return err
}
printObject(result)
return nil
})
R(&WireShowOptions{}, "wire-change-owner-candidate-domains", "Show candiate domains of a wire for changing owner", func(s *mcclient.ClientSession, args *WireShowOptions) error {
result, err := modules.Wires.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}

14
go.mod
View File

@@ -3,7 +3,6 @@ module yunion.io/x/onecloud
go 1.12
require (
cloud.google.com/go/storage v1.5.0
github.com/360EntSecGroup-Skylar/excelize v1.4.0
github.com/Azure/azure-sdk-for-go v36.1.0+incompatible
github.com/Azure/go-autorest/autorest v0.9.3
@@ -51,6 +50,7 @@ require (
github.com/golang-plus/errors v1.0.0
github.com/golang-plus/testing v1.0.0 // indirect
github.com/golang-plus/uuid v1.0.0
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect
github.com/golang/protobuf v1.3.2
github.com/google/gopacket v1.1.17
github.com/googleapis/gnostic v0.2.0 // indirect
@@ -114,8 +114,8 @@ require (
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20191008142428-8d021180e987
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb
google.golang.org/grpc v1.26.0
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873
google.golang.org/grpc v1.23.1
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.44.0 // indirect
@@ -127,12 +127,12 @@ require (
k8s.io/cluster-bootstrap v0.17.3
k8s.io/kubernetes v1.16.0
yunion.io/x/executor v0.0.0-20200227030256-a18417815e74
yunion.io/x/jsonutils v0.0.0-20200710080709-7ca71cdb9383
yunion.io/x/jsonutils v0.0.0-20200415132054-2bf8a5e94501
yunion.io/x/log v0.0.0-20200313080802-57a4ce5966b3
yunion.io/x/pkg v0.0.0-20200713121502-18154120c49b
yunion.io/x/pkg v0.0.0-20200516092703-0a53bc9270aa
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e
yunion.io/x/sqlchemy v0.0.0-20200702064124-195445bc4b11
yunion.io/x/structarg v0.0.0-20200708124353-ea9a441ecaf8
yunion.io/x/sqlchemy v0.0.0-20200312002602-1177cd8fbc57
yunion.io/x/structarg v0.0.0-20200423163001-168d0687be7e
)
replace (

132
go.sum
View File

@@ -5,25 +5,6 @@ cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw=
cloud.google.com/go v0.38.0 h1:ROfEUZz+Gh5pa62DJWXSaonyu3StP6EA6lPEXPI6mCo=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go v0.50.0 h1:0E3eE8MX426vUOs7aHfI7aN1BrIzzzf4ccKCSfSjGmc=
cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/bigquery v1.3.0 h1:sAbMqjY1PEQKZBWfbu6Y6bsupJ9c4QdHnzg/VvYTLcE=
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
cloud.google.com/go/datastore v1.0.0 h1:Kt+gOPPp2LEPWp8CSfxhsM8ik9CcyE/gYu+0r+RnZvM=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/pubsub v1.1.0 h1:9/vpR43S4aJaROxqQHQ3nH9lfyKKV0dC3vOmnw8ebQQ=
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
cloud.google.com/go/storage v1.5.0 h1:RPUcBvDeYgQFMfQu1eBMq6piD1SXmLH+vK3qjewZPus=
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
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=
@@ -172,7 +153,6 @@ github.com/c-bata/go-prompt v0.2.1 h1:HTPxmnfY4y5x3Myo7Gq4ce989jfnvZIBgdBp6y8bjY
github.com/c-bata/go-prompt v0.2.1/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34=
github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E=
github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/prettybench v0.0.0-20150116022406-03b8cfe5406c/go.mod h1:Xe6ZsFhtM8HrDku0pxJ3/Lr51rwykrzgFwpmTzleatY=
github.com/chai2010/gettext-go v0.0.0-20160711120539-c6fed771bfd5/go.mod h1:/iP1qXHoty45bqomnu2LM+VVyAEdWN+vtSHGlQgyxbw=
github.com/checkpoint-restore/go-criu v0.0.0-20190109184317-bdb7599cd87b/go.mod h1:TrMrLQfeENAPYPRsJuq3jsqdlRh3lvi6trTZJG8+tho=
@@ -225,7 +205,6 @@ github.com/dnaeon/go-vcr v1.0.1 h1:r8L/HqC0Hje5AXMu1ooW8oyQyOFv4GxqpL0nRP7SLLY=
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
github.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11 h1:m8nX8hsUghn853BJ5qB0lX+VvS6LTJPksWyILFZRYN4=
github.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11/go.mod h1:s1PfVYYVmTMgCSPtho4LKBDecEHJWtiVDPNv78Z985U=
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
@@ -251,8 +230,6 @@ github.com/elgatito/upnp v0.0.0-20180711183757-2f244d205f9a h1:2Zw3pxDRTs4nX1WCL
github.com/elgatito/upnp v0.0.0-20180711183757-2f244d205f9a/go.mod h1:afkYpY8JAIL4341N7Zj9xJ5yTovsg6BkWfBFlCzIoF4=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y=
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw=
@@ -288,8 +265,6 @@ github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493 h1:OTanQnFt0bi5
github.com/glycerine/goconvey v0.0.0-20180728074245-46e3a41ad493/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24=
github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M=
github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
@@ -358,12 +333,10 @@ github.com/golang-plus/uuid v1.0.0/go.mod h1:pBDDRrdgRHHqyYlj1d1i2gwyBq62Zc+sP2c
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA=
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef h1:veQD95Isof8w9/WXiA+pa3tz3fJXkt5B7QaRBrM62gk=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -391,17 +364,13 @@ github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gopacket v1.1.17 h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbBY=
github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
github.com/google/uuid v1.1.1/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=
github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g=
github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=
@@ -440,6 +409,7 @@ github.com/hako/durafmt v0.0.0-20180520121703-7b7ae1e72ead/go.mod h1:5Scbynm8dF1
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/golang-lru v0.0.0-20180201235237-0fb14efe8c47/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1 h1:0hERBMJE1eitiLkihrMvRVBYAkpHzc/J3QdDN+dAcgU=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/heketi/heketi v9.0.0+incompatible/go.mod h1:bB9ly3RchcQqsQ9CpyaQwvva7RS5ytVoSoholZQON6o=
@@ -472,8 +442,6 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV
github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo=
github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
@@ -646,9 +614,8 @@ github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw=
@@ -774,10 +741,8 @@ go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/etcd v0.5.0-alpha.5.0.20191023171146-3cf2f69b5738 h1:lWF4f9Nypl1ZqSb4gLeh/DGvBYVaUYHuiB93teOmwgc=
go.etcd.io/etcd v0.5.0-alpha.5.0.20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.21.0 h1:mU6zScU4U1YAFPHEHYk+3JC4SY7JxgkqS10ZOSyksNg=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
go.uber.org/atomic v0.0.0-20181018215023-8dc6146f7569/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
@@ -805,35 +770,19 @@ golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190829043050-9756ffdc2472/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413 h1:ULYEB3JvPRE/IfO+9uO7vKV/xzVTO7XPAwm8xbf4w2g=
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/exp v0.0.0-20191227195350-da58074b4299 h1:zQpM52jfKHG6II1ISZY1ZcpygvuSFZpLwfluuF89XOg=
golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f h1:J5lckAjkw6qYlOZNj90mLYNTEKDvWeuc1yieZ8qUzUE=
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
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=
@@ -853,13 +802,10 @@ golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190419010253-1f3472d942ba/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190812203447-cdfb69ac37fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -902,13 +848,9 @@ golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190418153312-f0ce4c0180be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606122018-79a91cf218c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190830023255-19e00faab6ad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -922,9 +864,8 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c h1:fqgJT0MGcGpPgpWU7VRdRjuArfcOvC4AoJmILihzhDg=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20170824195420-5d2fd3ccab98/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -938,24 +879,10 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4 h1:Toz2IK7k8rbltAXwNAxKcn9OzqyNfMUhUNjz3sL0NMk=
golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.zx2c4.com/wireguard v0.0.20190908 h1:SUoXDdwSMtomLdvke+zz83/u9tNvl4hHmcTIWp38tow=
@@ -968,42 +895,23 @@ gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmK
google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.6.1-0.20190607001116-5213b8090861/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/api v0.15.0 h1:yzlyyDW/J0w8yNFJIhiAJy4kq74S+1DOLdawELNxFMA=
google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873 h1:nfPFGzJkUDX6uBmpN/pSw7MbOAWegH5QDQuoXFHedLg=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb h1:ADPHZzpzM4tk4V4S5cnCrr5SwzvlrPRmqqCuJDB8UTs=
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.23.1 h1:q4XQuHFC6I28BKZpo6IYyb3mNO+l7lSOxRuYTCiDfXk=
google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.26.0 h1:2dTRdpdFEEhJYQD8EMLB61nnrzSCTbG38PhqdhvOltg=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM=
@@ -1050,8 +958,6 @@ honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
k8s.io/api v0.0.0-20190918155943-95b840bb6a1f h1:8FRUST8oUkEI45WYKyD8ed7Ad0Kg5v11zHyPkEVb2xo=
k8s.io/api v0.0.0-20190918155943-95b840bb6a1f/go.mod h1:uWuOHnjmNrtQomJrvEBg0c0HRNyQ+8KTEERVsK0PW48=
k8s.io/apiextensions-apiserver v0.0.0-20190918161926-8f644eb6e783/go.mod h1:xvae1SZB3E17UpV59AWc271W/Ph25N+bjPyR63X6tPY=
@@ -1096,7 +1002,6 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk=
modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k=
modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs=
modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
sigs.k8s.io/kustomize v2.0.3+incompatible/go.mod h1:MkjgH3RdOWrievjo6c9T245dYlB5QeXV4WCbnt/PEpU=
sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI=
sigs.k8s.io/structured-merge-diff v0.0.0-20190817042607-6149e4549fca/go.mod h1:IIgPezJWb76P0hotTxzDbWsMYB8APh18qZnxkomBpxA=
@@ -1106,8 +1011,8 @@ vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj
yunion.io/x/executor v0.0.0-20200227030256-a18417815e74 h1:A15C6VdVRWvmQ9pAJHrUs9yan5qKlYH7uaRxHg1kRbk=
yunion.io/x/executor v0.0.0-20200227030256-a18417815e74/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
yunion.io/x/jsonutils v0.0.0-20200710080709-7ca71cdb9383 h1:XEhTD+FGjBjEIWwcY0Ez1lY3oTTzjUOcRgH/i4eFM5A=
yunion.io/x/jsonutils v0.0.0-20200710080709-7ca71cdb9383/go.mod h1:3U5hspYn9apQHaXKY+fJ4Qgwjey32Kc+Mq+mUe9NamQ=
yunion.io/x/jsonutils v0.0.0-20200415132054-2bf8a5e94501 h1:i1r9XvbdxH3FgTCLmTaRi3MzQqhiQimXJRlUOPgrxnU=
yunion.io/x/jsonutils v0.0.0-20200415132054-2bf8a5e94501/go.mod h1:T7kxQJR13+t7z0TuT+Wzd7MTxBOk2H9c0pO1ONQSv90=
yunion.io/x/log v0.0.0-20190514041436-04ce53b17c6b/go.mod h1:+gauLs73omeJAPlsXcevLsJLKixV+sR/E7WSYTSx1fE=
yunion.io/x/log v0.0.0-20190629062853-9f6483a7103d h1:59zrDL7Ft+hDukguJRmLr/Gdu/9V75x+yX99ovZwfaA=
yunion.io/x/log v0.0.0-20190629062853-9f6483a7103d/go.mod h1:LC6f/4FozL0iaAbnFt2eDX9jlsyo3WiOUPm03d7+U4U=
@@ -1115,13 +1020,12 @@ yunion.io/x/log v0.0.0-20200313080802-57a4ce5966b3 h1:5Wc5hkB8PtMudmHuzCyok960Ru
yunion.io/x/log v0.0.0-20200313080802-57a4ce5966b3/go.mod h1:LC6f/4FozL0iaAbnFt2eDX9jlsyo3WiOUPm03d7+U4U=
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 v0.0.0-20200708071451-a663dc94e16b h1:wwPzH8iMRYjtaSM2pBN7nOqeZxR4XW5wdz2VE1KH/Ug=
yunion.io/x/pkg v0.0.0-20200708071451-a663dc94e16b/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
yunion.io/x/pkg v0.0.0-20200713121502-18154120c49b h1:Ov/eKwwNeQje7SggkopExzcCW/GfaUouvXkcY6RUEcM=
yunion.io/x/pkg v0.0.0-20200713121502-18154120c49b/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
yunion.io/x/pkg v0.0.0-20200302034534-fdf44d54b070/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
yunion.io/x/pkg v0.0.0-20200516092703-0a53bc9270aa h1:VizPfW8+mLFEE7W/97zxQJbfdxchi2dn1M/Y7YBwTTc=
yunion.io/x/pkg v0.0.0-20200516092703-0a53bc9270aa/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
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 v0.0.0-20200702064124-195445bc4b11 h1:srrssomGJLh4OaDaY/1so+2FUBjZxdwQx/1pZ6403YU=
yunion.io/x/sqlchemy v0.0.0-20200702064124-195445bc4b11/go.mod h1:FTdwPdGhMgh4E+UFXc9klI1Ok34fMuybTT+jLhOaIjI=
yunion.io/x/structarg v0.0.0-20200708124353-ea9a441ecaf8 h1:35Q2ce/gI2cuVhsuLS7WsL2K9SxwMEtWTopt/99iYsk=
yunion.io/x/structarg v0.0.0-20200708124353-ea9a441ecaf8/go.mod h1:EP6NSv2C0zzqBDTKumv8hPWLb3XvgMZDHQRfyuOrQng=
yunion.io/x/sqlchemy v0.0.0-20200312002602-1177cd8fbc57 h1:KtQAuLJ00RSUVqkiRmJ1DiDABiw0U3xxXnzD3lGavaY=
yunion.io/x/sqlchemy v0.0.0-20200312002602-1177cd8fbc57/go.mod h1:FTdwPdGhMgh4E+UFXc9klI1Ok34fMuybTT+jLhOaIjI=
yunion.io/x/structarg v0.0.0-20200423163001-168d0687be7e h1:pctCe/EPel3F1B83pJ2q9b34Umd1NdbLW1Yd+Lzur2s=
yunion.io/x/structarg v0.0.0-20200423163001-168d0687be7e/go.mod h1:EP6NSv2C0zzqBDTKumv8hPWLb3XvgMZDHQRfyuOrQng=

View File

@@ -39,7 +39,6 @@ func InitHandlers(app *appsrv.Application) {
db.InitAllManagers()
db.RegisterModelManager(db.OpsLog)
db.RegisterModelManager(db.Metadata)
db.RegisterModelManager(db.UserCacheManager)
db.RegisterModelManager(db.TenantCacheManager)
for _, manager := range []db.IModelManager{

View File

@@ -16,7 +16,6 @@ package handler
import (
"context"
"encoding/base64"
"fmt"
"net/http"
"strings"
@@ -42,7 +41,6 @@ import (
"yunion.io/x/onecloud/pkg/util/httputils"
"yunion.io/x/onecloud/pkg/util/netutils2"
"yunion.io/x/onecloud/pkg/util/rbacutils"
"yunion.io/x/onecloud/pkg/util/stringutils2"
)
func AppContextToken(ctx context.Context) mcclient.TokenCredential {
@@ -271,10 +269,6 @@ func (h *AuthHandlers) doCredentialLogin(ctx context.Context, req *http.Request,
if err != nil {
return nil, httperrors.NewInputParameterError("get password in body")
}
// try base64 decryption
if decPasswd, err := base64.StdEncoding.DecodeString(passwd); err == nil && stringutils2.IsPrintableAsciiString(string(decPasswd)) {
passwd = string(decPasswd)
}
if len(uname) == 0 || len(passwd) == 0 {
return nil, httperrors.NewInputParameterError("username or password is empty")
}
@@ -295,7 +289,7 @@ func (h *AuthHandlers) doCredentialLogin(ctx context.Context, req *http.Request,
if err != nil {
switch httperr := err.(type) {
case *httputils.JSONClientError:
if httperr.Code == 409 || httperr.Code == 429 {
if httperr.Code == 409 {
return nil, err
}
}
@@ -320,35 +314,6 @@ func (h *AuthHandlers) doCredentialLogin(ctx context.Context, req *http.Request,
}
}
}
if len(tenant) == 0 {
token3, ok := token.(*mcclient.TokenCredentialV3)
if ok {
targetLevel := rbacutils.ScopeProject
targetProjId := ""
for _, r := range token3.Token.RoleAssignments {
level := rbacutils.ScopeProject
if len(r.Policies.System) > 0 {
level = rbacutils.ScopeSystem
} else if len(r.Policies.Domain) > 0 {
level = rbacutils.ScopeDomain
}
if len(targetProjId) == 0 || level.HigherThan(targetLevel) {
targetProjId = r.Scope.Project.Id
targetLevel = level
}
}
if len(targetProjId) > 0 {
ntoken, e := auth.Client().SetProject(targetProjId, "", "", token)
if e != nil {
log.Errorf("fail to change to project %s(%s), reset to empty", targetProjId, e)
} else {
token = ntoken
tenant = targetProjId
body.(*jsonutils.JSONDict).Set("scope", jsonutils.NewString(string(targetLevel)))
}
}
}
}
if len(tenant) == 0 {
s := auth.GetAdminSession(ctx, FetchRegion(req), "")
projects, e := modules.UsersV3.GetProjects(s, token.GetUserId())
@@ -402,7 +367,7 @@ func isUserAllowWebconsole(ctx context.Context, w http.ResponseWriter, req *http
return true
}
func saveCookie(w http.ResponseWriter, name, val, domain string, expire time.Time, base64 bool) {
func saveCookie(w http.ResponseWriter, name, val string, expire time.Time, base64 bool) {
diff := time.Until(expire)
maxAge := int(diff.Seconds())
// log.Println("Set cookie", name, expire, maxAge, val)
@@ -414,11 +379,6 @@ func saveCookie(w http.ResponseWriter, name, val, domain string, expire time.Tim
}
// log.Printf("Set coookie: %s - %s\n", val, valenc)
cookie := &http.Cookie{Name: name, Value: valenc, Path: "/", Expires: expire, MaxAge: maxAge, HttpOnly: false}
if len(domain) > 0 {
cookie.Domain = domain
}
http.SetCookie(w, cookie)
}
@@ -440,12 +400,8 @@ func getCookie(r *http.Request, name string) string {
}
}
func clearCookie(w http.ResponseWriter, name string, domain string) {
func clearCookie(w http.ResponseWriter, name string) {
cookie := &http.Cookie{Name: name, Expires: time.Now(), Path: "/", MaxAge: -1, HttpOnly: false}
if len(domain) > 0 {
cookie.Domain = domain
}
http.SetCookie(w, cookie)
}
@@ -502,7 +458,7 @@ func (h *AuthHandlers) postLoginHandler(ctx context.Context, w http.ResponseWrit
httperrors.GeneralServerError(w, err)
return
}
saveCookie(w, constants.YUNION_AUTH_COOKIE, authCookie, options.Options.CookieDomain, token.GetExpires(), true)
saveCookie(w, constants.YUNION_AUTH_COOKIE, authCookie, token.GetExpires(), true)
if len(token.GetProjectId()) > 0 {
if body.Contains("isadmin") {
@@ -510,20 +466,20 @@ func (h *AuthHandlers) postLoginHandler(ctx context.Context, w http.ResponseWrit
if policy.PolicyManager.IsScopeCapable(token, rbacutils.ScopeSystem) {
adminVal, _ = body.GetString("isadmin")
}
saveCookie(w, "isadmin", adminVal, "", token.GetExpires(), false)
saveCookie(w, "isadmin", adminVal, token.GetExpires(), false)
}
if body.Contains("scope") {
scopeStr, _ := body.GetString("scope")
if !policy.PolicyManager.IsScopeCapable(token, rbacutils.TRbacScope(scopeStr)) {
scopeStr = string(rbacutils.ScopeProject)
}
saveCookie(w, "scope", scopeStr, "", token.GetExpires(), false)
saveCookie(w, "scope", scopeStr, token.GetExpires(), false)
}
if body.Contains("domain") {
domainStr, _ := body.GetString("domain")
saveCookie(w, "domain", domainStr, "", token.GetExpires(), false)
saveCookie(w, "domain", domainStr, token.GetExpires(), false)
}
saveCookie(w, "tenant", token.GetProjectId(), "", token.GetExpires(), false)
saveCookie(w, "tenant", token.GetProjectId(), token.GetExpires(), false)
}
setAuthHeader(w, tid)
@@ -546,7 +502,7 @@ func (h *AuthHandlers) postLogoutHandler(ctx context.Context, w http.ResponseWri
if len(tid) > 0 {
clientman.TokenMan.Remove(tid)
}
clearCookie(w, constants.YUNION_AUTH_COOKIE, options.Options.CookieDomain)
clearCookie(w, constants.YUNION_AUTH_COOKIE)
appsrv.Send(w, "")
}
@@ -577,6 +533,14 @@ func FetchRegion(req *http.Request) string {
return ""
}
func fetchDomain(req *http.Request) string {
r, e := req.Cookie("domain")
if e != nil {
return ""
}
return r.Value
}
type role struct {
id string
name string
@@ -683,74 +647,26 @@ func getUserAuthCookie(ctx context.Context, s *mcclient.ClientSession, token mcc
return info.String(), nil
}
func isLBAgentExists(s *mcclient.ClientSession) (bool, error) {
func getLBAgentInfo(s *mcclient.ClientSession, token mcclient.TokenCredential) (*jsonutils.JSONDict, error) {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString("hb_last_seen.isnotempty()"), "filter.0")
params.Add(jsonutils.NewInt(1), "limit")
params.Add(jsonutils.JSONFalse, "details")
agents, err := modules.LoadbalancerAgents.List(s, params)
lbagents, err := modules.LoadbalancerAgents.List(s, params)
if err != nil {
return false, errors.Wrap(err, "modules.LoadbalancerAgents.List")
return nil, errors.Wrapf(err, "user %s get lbagent", token.GetUserName())
}
if len(agents.Data) > 0 {
return true, nil
item := jsonutils.NewDict()
item.Add(jsonutils.NewString(""), "name")
item.Add(jsonutils.NewString("lbagent"), "type")
item.Add(jsonutils.JSONTrue, "as_menu")
if len(lbagents.Data) > 0 {
item.Add(jsonutils.JSONTrue, "status")
} else {
return false, nil
}
}
func isBaremetalAgentExists(s *mcclient.ClientSession) (bool, error) {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString("agent_type.equals(baremetal)"), "filter.0")
params.Add(jsonutils.NewInt(1), "limit")
params.Add(jsonutils.JSONFalse, "details")
agents, err := modules.Baremetalagents.List(s, params)
if err != nil {
return false, errors.Wrap(err, "modules.Baremetalagents.List")
}
if len(agents.Data) > 0 {
return true, nil
} else {
return false, nil
}
}
func isEsxiAgentExists(s *mcclient.ClientSession) (bool, error) {
params := jsonutils.NewDict()
params.Add(jsonutils.NewString("agent_type.equals(esxiagent)"), "filter.0")
params.Add(jsonutils.NewInt(1), "limit")
params.Add(jsonutils.JSONFalse, "details")
agents, err := modules.Baremetalagents.List(s, params)
if err != nil {
return false, errors.Wrap(err, "modules.Baremetalagents.List esxiagent")
}
if len(agents.Data) > 0 {
return true, nil
} else {
return false, nil
}
}
func isHostAgentExists(s *mcclient.ClientSession) (bool, error) {
params := jsonutils.NewDict()
params.Add(jsonutils.JSONFalse, "show_emulated")
params.Add(jsonutils.JSONFalse, "baremetal")
params.Add(jsonutils.NewString("system"), "scope")
params.Add(jsonutils.NewInt(1), "limit")
params.Add(jsonutils.JSONFalse, "details")
agents, err := modules.Hosts.List(s, params)
if err != nil {
return false, errors.Wrap(err, "modules.LoadbalancerAgents.List")
}
if len(agents.Data) > 0 {
return true, nil
} else {
return false, nil
item.Add(jsonutils.JSONFalse, "status")
}
return item, nil
}
func getUserInfo(ctx context.Context, s *mcclient.ClientSession, token mcclient.TokenCredential, req *http.Request) (*jsonutils.JSONDict, error) {
@@ -841,57 +757,43 @@ func getUserInfo(ctx context.Context, s *mcclient.ClientSession, token mcclient.
menus := jsonutils.NewArray()
k8s := jsonutils.NewArray()
adminToken := auth.AdminCredential()
curReg := FetchRegion(req)
srvCat := auth.Client().GetServiceCatalog()
var allsrv []string
var alleps []mcclient.ExternalService
if srvCat != nil {
allsrv = srvCat.GetInternalServices(curReg)
alleps = srvCat.GetServicesByInterface(curReg, "console")
}
allsrv := adminToken.GetInternalServices(curReg)
alleps := auth.Client().GetServiceCatalog().GetServicesByInterface(curReg, "console")
log.Infof("getUserInfo checkAgent exists")
for _, cf := range []struct {
existFunc func(*mcclient.ClientSession) (bool, error)
srvName string
}{
{
existFunc: isLBAgentExists,
srvName: "lbagent",
},
{
existFunc: isBaremetalAgentExists,
srvName: "bmagent",
},
{
existFunc: isHostAgentExists,
srvName: "hostagent",
},
{
existFunc: isEsxiAgentExists,
srvName: "esxiagent",
},
} {
exist, err := cf.existFunc(s)
if err != nil {
log.Errorf("isLBAgentExists fail %s", err)
} else if exist {
allsrv = append(allsrv, cf.srvName)
if allsrv != nil && len(allsrv) > 0 {
for _, srv := range allsrv {
item := jsonutils.NewDict()
item.Add(jsonutils.NewString(""), "name")
item.Add(jsonutils.NewString(srv), "type")
item.Add(jsonutils.JSONTrue, "status")
if srv == "notify" {
item.Add(jsonutils.JSONFalse, "as_menu")
} else {
item.Add(jsonutils.JSONTrue, "as_menu")
}
services.Add(item)
}
} else {
log.Errorf("fail to find services????: %#v %s", adminToken, curReg)
}
for _, srv := range allsrv {
item := jsonutils.NewDict()
item.Add(jsonutils.NewString(srv), "type")
item.Add(jsonutils.JSONTrue, "status")
services.Add(item)
log.Infof("getUserInfo getLBAgentInfo")
lb, err := getLBAgentInfo(s, adminToken)
if err != nil {
log.Errorf("getLBAgentInfo fail %s", err)
} else {
services.Add(lb)
}
for _, ep := range alleps {
item := jsonutils.NewDict()
item.Add(jsonutils.NewString(ep.Url), "url")
item.Add(jsonutils.NewString(ep.Name), "name")
menus.Add(item)
if alleps != nil {
for _, ep := range alleps {
item := jsonutils.NewDict()
item.Add(jsonutils.NewString(ep.Url), "url")
item.Add(jsonutils.NewString(ep.Name), "name")
menus.Add(item)
}
}
log.Infof("getUserInfo modules.Hosts.Get")
@@ -952,7 +854,7 @@ func (h *AuthHandlers) getPermissionDetails(ctx context.Context, w http.Response
if query != nil {
name, _ = query.GetString("policy")
}
result, err := policy.ExplainRpc(ctx, t, body, name)
result, err := policy.PolicyManager.ExplainRpc(t, body, name)
if err != nil {
httperrors.GeneralServerError(w, err)
return
@@ -1086,14 +988,20 @@ func (h *AuthHandlers) resetUserPassword(ctx context.Context, w http.ResponseWri
confirmPwd, _ := body.GetString("password_confirm")
passcode, _ := body.GetString("passcode")
// 1.验证新密码正确
if len(newPwd) < 6 {
httperrors.InputParameterError(w, "new password must have at least 6 characters")
return
}
if newPwd != confirmPwd {
httperrors.InputParameterError(w, "new password mismatch")
return
}
// 1.验证原密码正确且idp_driver为空
// 2.验证原密码正确且idp_driver为空
if isLdapUser(user) {
httperrors.ForbiddenError(w, "not support reset user password")
httperrors.ForbiddenError(w, "not support reset ldap user password")
return
}
@@ -1111,7 +1019,7 @@ func (h *AuthHandlers) resetUserPassword(ctx context.Context, w http.ResponseWri
return
}
// 2.如果已开启MFA验证 随机密码正确
// 3.如果已开启MFA验证 随机密码正确
tid := getAuthToken(req)
if isMfaEnabled(user) {
totp := clientman.TokenMan.GetTotp(tid)
@@ -1122,7 +1030,7 @@ func (h *AuthHandlers) resetUserPassword(ctx context.Context, w http.ResponseWri
}
}
// 3.重置密码清除认证token
// 4.重置密码清除认证token
params := jsonutils.NewDict()
params.Set("password", jsonutils.NewString(newPwd))
ret, err := modules.UsersV3.Patch(s, uid, params)
@@ -1137,7 +1045,7 @@ func (h *AuthHandlers) resetUserPassword(ctx context.Context, w http.ResponseWri
}
func isLdapUser(user jsonutils.JSONObject) bool {
if driver, _ := user.GetString("idp_driver"); len(driver) > 0 {
if driver, _ := user.GetString("idp_driver"); driver == "ldap" {
return true
}

View File

@@ -28,6 +28,7 @@ import (
"yunion.io/x/jsonutils"
"yunion.io/x/log"
"yunion.io/x/pkg/utils"
"yunion.io/x/onecloud/pkg/apigateway/options"
"yunion.io/x/onecloud/pkg/appctx"
@@ -37,6 +38,7 @@ import (
"yunion.io/x/onecloud/pkg/mcclient/auth"
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/util/httputils"
)
const (
@@ -171,19 +173,23 @@ func (mh *MiscHandler) DoBatchHostRegister(ctx context.Context, w http.ResponseW
}
paramKeys := []string{}
for _, title := range rows[0] {
i1 := -1
i2 := -1
for i, title := range rows[0] {
switch title {
case HOST_MAC:
paramKeys = append(paramKeys, "access_mac")
case HOST_NAME:
paramKeys = append(paramKeys, "name")
case HOST_IPMI_ADDR, HOST_IPMI_ADDR_OPTIONAL:
i1 = i
paramKeys = append(paramKeys, "ipmi_ip_addr")
case HOST_IPMI_USERNAME, HOST_IPMI_USERNAME_OPTIONAL:
paramKeys = append(paramKeys, "ipmi_username")
case HOST_IPMI_PASSWORD, HOST_IPMI_PASSWORD_OPTIONAL:
paramKeys = append(paramKeys, "ipmi_password")
case HOST_MNG_IP_ADDR, HOST_MNG_IP_ADDR_OPTIONAL:
i2 = i
paramKeys = append(paramKeys, "access_ip")
default:
e := httperrors.NewInternalServerError("empty file content")
@@ -199,8 +205,33 @@ func (mh *MiscHandler) DoBatchHostRegister(ctx context.Context, w http.ResponseW
return
}
ips := []string{}
hosts := bytes.Buffer{}
for _, row := range rows[1:] {
var e *httputils.JSONClientError
if i1 >= 0 && len(row[i1]) > 0 {
i1Ip := fmt.Sprintf("%d-%s", i1, row[i1])
if utils.IsInStringArray(i1Ip, ips) {
e = httperrors.NewDuplicateIdError("ip", row[i1])
} else {
ips = append(ips, i1Ip)
}
}
if i2 >= 0 && len(row[i2]) > 0 {
i2Ip := fmt.Sprintf("%d-%s", i2, row[i2])
if utils.IsInStringArray(i2Ip, ips) {
e = httperrors.NewDuplicateIdError("ip", row[i2])
} else {
ips = append(ips, i2Ip)
}
}
if e != nil {
httperrors.JsonClientError(w, e)
return
}
hosts.WriteString(strings.Join(row, ",") + "\n")
}
@@ -297,6 +328,18 @@ func (mh *MiscHandler) DoBatchUserRegister(ctx context.Context, w http.ResponseW
return
}
if _, ok := names[name]; ok {
e := httperrors.NewClientError("row %d duplicate name %s", rowIdx, name)
httperrors.JsonClientError(w, e)
return
} else {
names[name] = true
_, err := modules.UsersV3.Get(s, name, nil)
if err == nil {
continue
}
}
domainId, ok := domains[domain]
if !ok {
if len(domain) == 0 {
@@ -315,18 +358,6 @@ func (mh *MiscHandler) DoBatchUserRegister(ctx context.Context, w http.ResponseW
domains[domain] = id
}
if _, ok := names[name+"/"+domainId]; ok {
e := httperrors.NewClientError("row %d duplicate name %s", rowIdx, name)
httperrors.JsonClientError(w, e)
return
} else {
names[name+"/"+domainId] = true
_, err := modules.UsersV3.Get(s, name, nil)
if err == nil {
continue
}
}
user := jsonutils.NewDict()
user.Add(jsonutils.NewString(name), "name")
user.Add(jsonutils.NewString(domainId), "domain_id")

View File

@@ -20,13 +20,12 @@ import (
type GatewayOptions struct {
DefaultRegion string `help:"Use default region while region not specific in api request"`
CookieDomain string `help:"specific yunionauth cookie domain" default:""`
Timeout int `help:"Timeout in seconds, default is 300" default:"300"`
DisableModuleApiVersion bool `help:"Disable each modules default api version" default:"false"`
EnableTotp bool `help:"Enable two-factor authentication" default:"false"`
EnableTotp bool `help:"Enable two-factor authentication" default:"false"`
SqlitePath string `help:"sqlite db path" default:"/etc/yunion/data/yunionapi.db"`

View File

@@ -1,25 +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 service
import (
_ "yunion.io/x/onecloud/pkg/cloudevent/policy"
_ "yunion.io/x/onecloud/pkg/compute/policy"
_ "yunion.io/x/onecloud/pkg/image/policy"
_ "yunion.io/x/onecloud/pkg/keystone/policy"
_ "yunion.io/x/onecloud/pkg/logger/policy"
_ "yunion.io/x/onecloud/pkg/notify/policy"
_ "yunion.io/x/onecloud/pkg/yunionconf/policy"
)

View File

@@ -1,20 +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 baremetal
const (
SERVICE_TYPE = "baremetal"
SERVICE_VERSION = ""
)

View File

@@ -1,15 +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 baremetal // import "yunion.io/x/onecloud/pkg/apis/baremetal"

View File

@@ -1,35 +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 billing
import "time"
type BillingDetailsInfo struct {
}
type BillingResourceListInput struct {
// 计费类型,按需计费和预付费
// pattern:prepaid|postpaid
BillingType string `json:"billing_type"`
// 计费过期时间的查询起始时间
BillingExpireSince time.Time `json:"billing_expire_since"`
// 计费过期时间的查询终止时间
BillingExpireBefore time.Time `json:"billing_expire_before"`
// 计费周期
// example:7d
BillingCycle string `json:"billing_cycle"`
}

View File

@@ -1,15 +1 @@
// 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 proxy // import "yunion.io/x/onecloud/pkg/apis/cloudcommon/proxy"

View File

@@ -1,17 +1,3 @@
// 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 proxy
import (
@@ -25,13 +11,16 @@ const (
)
type ProxySettingCreateInput struct {
apis.InfrasResourceBaseCreateInput
apis.StandaloneResourceCreateInput
ProxySetting
}
type ProxySettingUpdateInput struct {
apis.InfrasResourceBaseUpdateInput
// 资源名称
Name string `json:"name"`
// 资源描述
Description string `json:"description"`
ProxySetting
}

View File

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

View File

@@ -20,7 +20,7 @@ import (
// SProxySetting is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudcommon/db/proxy.SProxySetting.
type SProxySetting struct {
apis.SInfrasResourceBase
apis.SStandaloneResourceBase
HTTPProxy string `json:"http_proxy"`
HTTPSProxy string `json:"https_proxy"`
NoProxy string `json:"no_proxy"`

View File

@@ -18,13 +18,47 @@ import (
"time"
"yunion.io/x/onecloud/pkg/apis"
"yunion.io/x/onecloud/pkg/apis/compute"
)
type CloudeventListInput struct {
apis.ModelBaseListInput
compute.CloudenvResourceListInput
// 列出指定云平台的资源,支持的云平台如下
//
// | Provider | 开始支持版本 | 平台 |
// |-----------|------------|-------------------------------------|
// | OneCloud | 0.0 | OneCloud内置私有云包括KVM和裸金属管理 |
// | VMware | 1.2 | VMware vCenter |
// | OpenStack | 2.6 | OpenStack M版本以上私有云 |
// | ZStack | 2.10 | ZStack私有云 |
// | Aliyun | 2.0 | 阿里云 |
// | Aws | 2.3 | Amazon AWS |
// | Azure | 2.2 | Microsoft Azure |
// | Google | 2.13 | Google Cloud Platform |
// | Qcloud | 2.3 | 腾讯云 |
// | Huawei | 2.5 | 华为公有云 |
// | Ucloud | 2.7 | UCLOUD |
// | Ctyun | 2.13 | 天翼云 |
// | S3 | 2.11 | 通用s3对象存储 |
// | Ceph | 2.11 | Ceph对象存储 |
// | Xsky | 2.11 | XSKY启明星辰Ceph对象存储 |
//
// enum: OneCloud,VMware,Aliyun,Qcloud,Azure,Aws,Huawei,OpenStack,Ucloud,ZStack,Google,Ctyun,S3,Ceph,Xsky"
Providers []string `json:"providers"`
// swagger:ignore
// Deprecated
Provider []string `json:"provider" "yunion:deprecated-by":"providers"`
// 列出指定云平台品牌的资源一般来说brand和provider相同除了以上支持的provider之外还支持以下band
//
// | Brand | Provider | 说明 |
// |----------|----------|------------|
// | DStack | ZStack | 滴滴云私有云 |
//
Brands []string `json:"brands"`
// swagger:ignore
// Deprecated
Brand []string `json:"brand" "yunion:deprecated-by":"brands"`
// 服务类型
Service []string `json:"service"`

View File

@@ -15,8 +15,6 @@
package cloudevent
const (
SERVICE_TYPE = "cloudevent"
CLOUD_EVENT_SERVICE_COMPUTE = "compute"
CLOUD_EVENT_SERVICE_UNKNOWN = "unknown"

View File

@@ -1,69 +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 cloudnet
import "yunion.io/x/onecloud/pkg/apis"
type RouterUpdateInput struct {
apis.StandaloneResourceBaseUpdateInput
User string `json:"user"`
Host string `json:"host"`
Port *int `json:"port"`
PrivateKey string `json:"private_key"`
RealizeWgIfaces *bool `json:"realize_wg_ifaces"`
RealizeRoutes *bool `json:"realize_routes"`
RealizeRules *bool `json:"realize_rules"`
OldEndpoint string `json:"_old_endpoint"`
}
type RouteUpdateInput struct {
apis.StandaloneResourceBaseUpdateInput
Network string `json:"network"`
Gateway string `json:"gateway"`
}
type RuleUpdateInput struct {
apis.StandaloneResourceBaseUpdateInput
Prio int `json:"prio"`
MatchSrcNet string `json:"match_src_net"`
MatchDestNet string `json:"match_dest_net"`
MatchProto string `json:"match_proto"`
MatchSrcPort int `json:"match_src_port"`
MatchDestPort int `json:"match_dest_port"`
MatchInIfname string `json:"match_in_ifname"`
MatchOutIfname string `json:"match_out_ifname"`
Action string `json:"action"`
ActionOptions string `json:"action_options"`
}

View File

@@ -357,8 +357,8 @@ type ServerCreateInput struct {
// required: false
UserData string `json:"user_data"`
// swagger:ignore
// Deprecated
// swagger:ignore
KeypairId string `json:"keypair_id" "yunion:deprecated-by":"keypair"`
// 秘钥对Id
@@ -434,10 +434,6 @@ type ServerCreateInput struct {
// |天翼云 |是 |
Duration string `json:"duration"`
// 是否自动续费
// default: false
AutoRenew bool `json:"auto_renew"`
// swagger:ignore
AutoPrepaidRecycle bool `json:"auto_prepaid_recycle,omitfalse"`

View File

@@ -18,29 +18,9 @@ import "yunion.io/x/onecloud/pkg/apis"
type BaremetalagentDetails struct {
apis.StandaloneResourceDetails
ZoneResourceInfo
SBaremetalagent
}
type BaremetalagentCreateInput struct {
apis.StandaloneResourceCreateInput
ZoneResourceInput
AccessIp string `json:"access_ip"`
ManagerUri string `json:"manager_uri"`
AgentType string `json:"agent_type"`
Version string `json:"version"`
}
type BaremetalagentUpdateInput struct {
apis.StandaloneResourceBaseUpdateInput
ZoneResourceInput
AccessIp string `json:"access_ip"`
ManagerUri string `json:"manager_uri"`
AgentType string `json:"agent_type"`
Version string `json:"version"`
// 裸金属代理程序所在的可用区
// example: zone1
Zone string `json:"zone"`
}

View File

@@ -35,7 +35,6 @@ const (
BUCKET_STATUS_DELETING = "deleting"
BUCKET_STATUS_DELETED = "deleted"
BUCKET_STATUS_DELETE_FAIL = "delete_fail"
BUCKET_STATUS_UNKNOWN = "unknown"
BUCKET_UPLOAD_OBJECT_KEY_HEADER = "X-Yunion-Bucket-Upload-Key"
BUCKET_UPLOAD_OBJECT_ACL_HEADER = "X-Yunion-Bucket-Upload-Acl"
@@ -43,21 +42,19 @@ const (
)
type BucketCreateInput struct {
apis.SharableVirtualResourceCreateInput
CloudregionResourceInput
CloudproviderResourceInput
apis.VirtualResourceCreateInput
RegionalResourceCreateInput
ManagedResourceCreateInput
StorageClass string `json:"storage_class"`
}
type BucketDetails struct {
apis.SharableVirtualResourceDetails
ManagedResourceInfo
CloudregionResourceInfo
apis.VirtualResourceDetails
SBucket
// 访问URL列表
CloudproviderInfo
AccessUrls []cloudprovider.SBucketAccessUrl `json:"access_urls"`
}
@@ -98,25 +95,7 @@ func (input *BucketMetadataInput) Validate() error {
}
type BucketListInput struct {
apis.SharableVirtualResourceListInput
apis.ExternalizedResourceBaseListInput
apis.VirtualResourceListInput
ManagedResourceListInput
RegionalFilterListInput
// STORAGE_CLASS
StorageClass []string `json:"storage_class"`
// 位置
Location []string `json:"location"`
// ACL
Acl []string `json:"acl"`
}
type BucketSyncstatusInput struct {
}
type BucketUpdateInput struct {
apis.SharableVirtualResourceBaseUpdateInput
}

View File

@@ -28,7 +28,6 @@ type CachedImageUncacheImageInput struct {
type CachedimageDetails struct {
apis.StandaloneResourceDetails
SCachedimage
// 镜像状态, 和info里面的status一致

View File

@@ -18,36 +18,7 @@ import "yunion.io/x/onecloud/pkg/apis"
type CachedLoadbalancerAclDetails struct {
apis.SharableVirtualResourceDetails
CloudregionResourceInfo
ManagedResourceInfo
SCachedLoadbalancerAcl
}
type CachedLoadbalancerAclListInput struct {
apis.SharableVirtualResourceListInput
RegionalFilterListInput
ManagedResourceListInput
LoadbalancerAclFilterListInput
}
type LoadbalancerAclResourceInfo struct {
// 负载均衡ACL名称
Acl string `json:"acl"`
}
type LoadbalancerAclResourceInput struct {
// ACL名称或ID
Acl string `json:"acl"`
// swagger:ignore
// Deprecated
AclId string `json:"acl_id" "yunion:deprecated-by":"acl"`
}
type LoadbalancerAclFilterListInput struct {
LoadbalancerAclResourceInput
// 以ACL名称排序
OrderByAcl string `json:"order_by_acl"`
CloudproviderInfo
}

View File

@@ -18,37 +18,7 @@ import "yunion.io/x/onecloud/pkg/apis"
type CachedLoadbalancerCertificateDetails struct {
apis.VirtualResourceDetails
ManagedResourceInfo
CloudregionResourceInfo
LoadbalancerCertificateResourceInfo
SCachedLoadbalancerCertificate
}
type CachedLoadbalancerCertificateListInput struct {
apis.VirtualResourceListInput
ManagedResourceListInput
RegionalFilterListInput
LoadbalancerCertificateFilterListInput
}
type LoadbalancerCertificateResourceInfo struct {
// 负载均衡证书名称
Certificate string `json:"certificate"`
}
type LoadbalancerCertificateResourceInput struct {
// 证书名称或ID
Certificate string `json:"certificate"`
// swagger:ignore
// Deprecated
CertificateId string `json:"certificate_id" "yunion:deprecated-by":"certificate"`
}
type LoadbalancerCertificateFilterListInput struct {
LoadbalancerCertificateResourceInput
// 以证书名称排序
OrderByCertificate string `json:"order_by_certificate"`
CloudproviderInfo
}

View File

@@ -24,114 +24,8 @@ import (
"yunion.io/x/onecloud/pkg/httperrors"
)
type CloudenvResourceInfo struct {
// 云平台名称
// example: Google
Provider string `json:"provider,omitempty"`
// 云平台品牌
// example: Google
Brand string `json:"brand,omitempty"`
// 云环境
// example: public
CloudEnv string `json:"cloud_env,omitempty"`
// Environment
Environment string `json:"environment,omitempty"`
}
type CloudenvResourceListInput struct {
// 列出指定云平台的资源,支持的云平台如下
//
// | Provider | 开始支持版本 | 平台 |
// |-----------|------------|-------------------------------------|
// | OneCloud | 0.0 | OneCloud内置私有云包括KVM和裸金属管理 |
// | VMware | 1.2 | VMware vCenter |
// | OpenStack | 2.6 | OpenStack M版本以上私有云 |
// | ZStack | 2.10 | ZStack私有云 |
// | Aliyun | 2.0 | 阿里云 |
// | Aws | 2.3 | Amazon AWS |
// | Azure | 2.2 | Microsoft Azure |
// | Google | 2.13 | Google Cloud Platform |
// | Qcloud | 2.3 | 腾讯云 |
// | Huawei | 2.5 | 华为公有云 |
// | Ucloud | 2.7 | UCLOUD |
// | Ctyun | 2.13 | 天翼云 |
// | S3 | 2.11 | 通用s3对象存储 |
// | Ceph | 2.11 | Ceph对象存储 |
// | Xsky | 2.11 | XSKY启明星辰Ceph对象存储 |
//
// enum: OneCloud,VMware,Aliyun,Qcloud,Azure,Aws,Huawei,OpenStack,Ucloud,ZStack,Google,Ctyun,S3,Ceph,Xsky"
Providers []string `json:"providers"`
// swagger:ignore
// Deprecated
Provider []string `json:"provider" "yunion:deprecated-by":"providers"`
// 列出指定云平台品牌的资源一般来说brand和provider相同除了以上支持的provider之外还支持以下band
//
// | Brand | Provider | 说明 |
// |----------|----------|------------|
// | DStack | ZStack | 滴滴云私有云 |
//
Brands []string `json:"brands"`
// swagger:ignore
// Deprecated
Brand []string `json:"brand" "yunion:deprecated-by":"brands"`
// 列出指定云环境的资源,支持云环境如下:
//
// | CloudEnv | 说明 |
// |-----------|--------|
// | public | 公有云 |
// | private | 私有云 |
// | onpremise | 本地IDC |
//
// enum: public,private,onpremise
CloudEnv string `json:"cloud_env"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
PublicCloud bool `json:"public_cloud"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsPublic bool `json:"is_public"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
PrivateCloud bool `json:"private_cloud"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsPrivate bool `json:"is_private"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsOnPremise bool `json:"is_on_premise"`
// 以平台名称排序
// pattern:asc|desc
OrderByProvider string `json:"order_by_provider"`
// 以平台品牌排序
// pattern:asc|desc
OrderByBrand string `json:"order_by_brand"`
}
type CloudaccountResourceInfo struct {
CloudenvResourceInfo
// 云账号名称
// example: google-account
Account string `json:"account,omitempty"`
}
type CloudaccountCreateInput struct {
apis.EnabledStatusInfrasResourceBaseCreateInput
apis.EnabledStatusStandaloneResourceCreateInput
// 指定云平台
// Qcloud: 腾讯云
@@ -167,11 +61,10 @@ type CloudaccountCreateInput struct {
IsOnPremise bool
// 指定云账号所属的项目
// Tenant string `json:"tenant"`
// swagger:ignore
// TenantId string
Tenant string `json:"tenant"`
apis.ProjectizedResourceInput
// swagger:ignore
TenantId string
// 启用自动同步
// default: false
@@ -185,7 +78,7 @@ type CloudaccountCreateInput struct {
AutoCreateProject bool `json:"auto_create_project"`
// 额外信息,例如账单的access key
Options *jsonutils.JSONDict `json:"options"`
Options *jsonutils.JSONObject `json:"options"`
proxyapi.ProxySettingResourceInput
@@ -210,24 +103,11 @@ func (i CloudaccountShareModeInput) Validate() error {
}
type CloudaccountListInput struct {
apis.EnabledStatusInfrasResourceBaseListInput
apis.EnabledStatusStandaloneResourceListInput
ManagedResourceListInput
CapabilityListInput
SyncableBaseResourceListInput
// 账号健康状态
HealthStatus []string `json:"health_status"`
// 共享模式
ShareMode []string `json:"share_mode"`
// 代理
ProxySetting string `json:"proxy_setting"`
// swagger:ignore
ProxySettingId string `json:"proxy_setting_id" "yunion:deprecated-by":"proxy_setting"`
}
type ProviderProject struct {
@@ -241,7 +121,7 @@ type ProviderProject struct {
}
type CloudaccountDetail struct {
apis.EnabledStatusInfrasResourceBaseDetails
apis.StandaloneResourceDetails
SCloudaccount
// 子订阅项目信息
@@ -303,25 +183,3 @@ type CloudaccountDetail struct {
ProxySetting proxyapi.SProxySetting `json:"proxy_setting"`
}
type CloudaccountUpdateInput struct {
apis.EnabledStatusInfrasResourceBaseUpdateInput
// 同步周期,单位为秒
SyncIntervalSeconds *int64 `json:"sync_interval_seconds"`
// 待更新的options key/value
Options *jsonutils.JSONDict `json:"options"`
// 带删除的options key
RemoveOptions []string `json:"remove_options"`
proxyapi.ProxySettingResourceInput
}
type CloudaccountPerformPublicInput struct {
apis.PerformPublicDomainInput
// 共享模式可能值为provider_domain, system
// example: provider_domain
ShareMode string `json:"share_mode"`
}

View File

@@ -14,11 +14,6 @@
package compute
import (
"yunion.io/x/onecloud/pkg/apis"
"yunion.io/x/onecloud/pkg/cloudprovider"
)
const (
CLOUD_PROVIDER_INIT = "init"
CLOUD_PROVIDER_CONNECTED = "connected"
@@ -96,17 +91,17 @@ var (
)
const (
CLOUD_ENV_PUBLIC_CLOUD = cloudprovider.CLOUD_ENV_PUBLIC_CLOUD
CLOUD_ENV_PRIVATE_CLOUD = cloudprovider.CLOUD_ENV_PRIVATE_CLOUD
CLOUD_ENV_ON_PREMISE = cloudprovider.CLOUD_ENV_ON_PREMISE
CLOUD_ENV_PUBLIC_CLOUD = "public"
CLOUD_ENV_PRIVATE_CLOUD = "private"
CLOUD_ENV_ON_PREMISE = "onpremise"
CLOUD_ENV_PRIVATE_ON_PREMISE = cloudprovider.CLOUD_ENV_PRIVATE_ON_PREMISE
CLOUD_ENV_PRIVATE_ON_PREMISE = "private_or_onpremise"
)
const (
CLOUD_ACCOUNT_SHARE_MODE_ACCOUNT_DOMAIN = apis.CLOUD_ACCOUNT_SHARE_MODE_ACCOUNT_DOMAIN
CLOUD_ACCOUNT_SHARE_MODE_SYSTEM = apis.CLOUD_ACCOUNT_SHARE_MODE_SYSTEM
CLOUD_ACCOUNT_SHARE_MODE_PROVIDER_DOMAIN = apis.CLOUD_ACCOUNT_SHARE_MODE_PROVIDER_DOMAIN
CLOUD_ACCOUNT_SHARE_MODE_ACCOUNT_DOMAIN = "account_domain"
CLOUD_ACCOUNT_SHARE_MODE_SYSTEM = "system"
CLOUD_ACCOUNT_SHARE_MODE_PROVIDER_DOMAIN = "provider_domain"
)
var (

View File

@@ -22,17 +22,31 @@ import (
"yunion.io/x/onecloud/pkg/cloudprovider"
)
type ManagedResourceInfo struct {
CloudaccountResourceInfo
type CloudproviderInfo struct {
// 云平台
// example: Google
Provider string `json:"provider,omitempty"`
// 云平台品牌
// example: Google
Brand string `json:"brand,omitempty"`
// 云账号名称
// example: google-account
Account string `json:"account,omitempty"`
// 云账号Id
// example: 4d3c8979-9dd0-439b-8d78-36fe1ab1666c
AccountId string `json:"account_id,omitempty"`
// 订阅名称
// 订阅名称
// example: google-account
Manager string `json:"manager,omitempty"`
// 子订阅Id
// example: fa4aaf88-aed8-422d-84e7-56dea533b364
ManagerId string `json:"manager_id,omitempty"`
// 子订阅所在项目名称
// example: system
ManagerProject string `json:"manager_project,omitempty"`
@@ -47,9 +61,52 @@ type ManagedResourceInfo struct {
// 子订阅所在域Id
// example: default
ManagerDomainId string `json:"manager_domain_id,omitempty"`
// 区域名称
// example: 腾讯云 华南地区(广州)
Region string `json:"region,omitempty"`
// 区域Id
// example: 6151c89b-77f2-4d43-8ef9-cd03d604a16b
RegionId string `json:"region_id,omitempty"`
// 区域Id
// example: 6151c89b-77f2-4d43-8ef9-cd03d604a16b
CloudregionId string `json:"cloudregion_id,omitempty"`
// 区域外部Id
// Qcloud/ap-guangzhou
RegionExternalId string `json:"region_external_id,omitempty"`
// 区域外部Id(不携带平台信息)
// example: ap-guangzhou
RegionExtId string `json:"region_ext_id,omitempty"`
// 可用区名称
// example: 腾讯云 广州四区
Zone string `json:"zone,omitempty"`
// 可用区Id
// example: 336ac6d2-b80d-43bb-86d5-1ebf474da8d4
ZoneId string `json:"zone_id,omitempty"`
// 可用区外部Id
// example: ap-guangzhou-4
ZoneExtId string `json:"zone_ext_id,omitempty"`
// 云环境
// example: public
CloudEnv string `json:"cloud_env,omitempty"`
}
type SCloudproviderUsage struct {
type CloudproviderDetails struct {
apis.StandaloneResourceDetails
SCloudprovider
ProxySetting proxyapi.SProxySetting `json:"proxy_setting"`
// 云账号名称
// example: google-account
Cloudaccount string `json:"cloudaccount"`
// 子订阅同步状态
SyncStatus2 string `json:"sync_status2"`
// 支持服务列表
Capabilities []string `json:"capabilities"`
// 云主机数量
// example: 1
GuestCount int `json:"guest_count"`
@@ -74,73 +131,16 @@ type SCloudproviderUsage struct {
// 负载均衡器数量
// example: 2
LoadbalancerCount int `json:"loadbalancer_count"`
// 数据库实例数量
// example: 2
DBInstanceCount int `json:"dbinstance_count"`
// 弹性缓存实例数量
// example: 2
ElasticcacheCount int `json:"elasticcache_count"`
// 项目数量
ProjectCount int `json:"project_count"`
// 同步区域数量
SyncRegionCount int `json:"sync_region_count"`
}
func (usage *SCloudproviderUsage) IsEmpty() bool {
if usage.HostCount > 0 {
return false
}
if usage.VpcCount > 0 {
return false
}
if usage.StorageCount > 0 {
return false
}
if usage.StorageCacheCount > 0 {
return false
}
if usage.EipCount > 0 {
return false
}
if usage.SnapshotCount > 0 {
return false
}
if usage.LoadbalancerCount > 0 {
return false
}
/*if usage.ProjectCount > 0 {
return false
}
if usage.SyncRegionCount > 0 {
return false
}*/
return true
}
type CloudproviderDetails struct {
apis.EnabledStatusStandaloneResourceDetails
apis.ProjectizedResourceInfo
ProxySetting proxyapi.SProxySetting `json:"proxy_setting"`
SCloudprovider
// 云账号名称
// example: google-account
Cloudaccount string `json:"cloudaccount"`
// 子订阅同步状态
SyncStatus2 string `json:"sync_status2"`
// 支持服务列表
Capabilities []string `json:"capabilities"`
SCloudproviderUsage
// 子订阅品牌信息
Brand string `json:"brand"`
}
// 云订阅输入参数
type CloudproviderResourceInput struct {
type ManagedResourceListInput struct {
// 列出关联指定云订阅(ID或Name)的资源
Cloudprovider string `json:"cloudprovider"`
// List objects belonging to the cloud provider
@@ -156,13 +156,6 @@ type CloudproviderResourceInput struct {
// Deprecated
// description: this param will be deprecate at 3.0
CloudproviderId string `json:"cloudprovider_id" "yunion:deprecated-by":"cloudprovider"`
}
type ManagedResourceListInput struct {
apis.DomainizedResourceListInput
CloudenvResourceListInput
CloudproviderResourceInput
// 列出关联指定云账号(ID或Name)的资源
Cloudaccount string `json:"cloudaccount"`
@@ -179,17 +172,80 @@ type ManagedResourceListInput struct {
// description: this param will be deprecate at 3.0
AccountId string `json:"account_id" "yunion:deprecated-by":"cloudaccount"`
// 列出指定云平台的资源,支持的云平台如下
//
// | Provider | 开始支持版本 | 平台 |
// |-----------|------------|-------------------------------------|
// | OneCloud | 0.0 | OneCloud内置私有云包括KVM和裸金属管理 |
// | VMware | 1.2 | VMware vCenter |
// | OpenStack | 2.6 | OpenStack M版本以上私有云 |
// | ZStack | 2.10 | ZStack私有云 |
// | Aliyun | 2.0 | 阿里云 |
// | Aws | 2.3 | Amazon AWS |
// | Azure | 2.2 | Microsoft Azure |
// | Google | 2.13 | Google Cloud Platform |
// | Qcloud | 2.3 | 腾讯云 |
// | Huawei | 2.5 | 华为公有云 |
// | Ucloud | 2.7 | UCLOUD |
// | Ctyun | 2.13 | 天翼云 |
// | S3 | 2.11 | 通用s3对象存储 |
// | Ceph | 2.11 | Ceph对象存储 |
// | Xsky | 2.11 | XSKY启明星辰Ceph对象存储 |
//
// enum: OneCloud,VMware,Aliyun,Qcloud,Azure,Aws,Huawei,OpenStack,Ucloud,ZStack,Google,Ctyun,S3,Ceph,Xsky"
Providers []string `json:"providers"`
// swagger:ignore
// Deprecated
Provider []string `json:"provider" "yunion:deprecated-by":"providers"`
// 列出指定云平台品牌的资源一般来说brand和provider相同除了以上支持的provider之外还支持以下band
//
// | Brand | Provider | 说明 |
// |----------|----------|------------|
// | DStack | ZStack | 滴滴云私有云 |
//
Brands []string `json:"brands"`
// swagger:ignore
// Deprecated
Brand []string `json:"brand" "yunion:deprecated-by":"brands"`
// 列出指定云环境的资源,支持云环境如下:
//
// | CloudEnv | 说明 |
// |-----------|--------|
// | public | 公有云 |
// | private | 私有云 |
// | onpremise | 本地IDC |
//
// enum: public,private,onpremise
CloudEnv string `json:"cloud_env"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
PublicCloud bool `json:"public_cloud"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsPublic bool `json:"is_public"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
PrivateCloud bool `json:"private_cloud"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsPrivate bool `json:"is_private"`
// swagger:ignore
// Deprecated
// description: this param will be deprecate at 3.0
IsOnPremise bool `json:"is_on_premise"`
// 过滤资源是否为非OneCloud内置私有云管理的资源
// default: false
IsManaged *bool `json:"is_managed"`
// 以云账号名称排序
// pattern:asc|desc
OrderByAccount string `json:"order_by_account"`
// 以云订阅名称排序
// pattern:asc|desc
OrderByManager string `json:"order_by_manager"`
IsManaged bool `json:"is_managed"`
}
func (input *ManagedResourceListInput) AfterUnmarshal() {
@@ -218,20 +274,10 @@ type CloudproviderListInput struct {
apis.EnabledStatusStandaloneResourceListInput
ManagedResourceListInput
apis.ProjectizedResourceListInput
UsableResourceListInput
CloudregionResourceInput
ZoneResourceInput
CapabilityListInput
SyncableBaseResourceListInput
// 账号健康状态
HealthStatus []string `json:"health_status"`
}
func (input *CapabilityListInput) AfterUnmarshal() {
@@ -239,15 +285,3 @@ func (input *CapabilityListInput) AfterUnmarshal() {
input.Capability = append(input.Capability, cloudprovider.CLOUD_CAPABILITY_OBJECTSTORE)
}
}
type SyncableBaseResourceListInput struct {
// 同步状态
SyncStatus []string `json:"sync_status"`
}
type CloudproviderUpdateInput struct {
apis.EnabledStatusStandaloneResourceBaseUpdateInput
}
type CloudproviderCreateInput struct {
}

View File

@@ -1,44 +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/apis"
const (
CLOUD_PROVIDER_QUOTA_RANGE_CLOUDREGION = "cloudregion"
CLOUD_PROVIDER_QUOTA_RANGE_CLOUDPROVIDER = "cloudprovider"
)
type CloudproviderQuotaListInput struct {
apis.StandaloneResourceListInput
apis.ExternalizedResourceBaseListInput
ManagedResourceListInput
RegionalFilterListInput
// 配额类型
QuotaType string `json:"quota_type"`
// 配额范围
QuotaRange string `json:"quota_range"`
}
type CloudproviderQuotaDetails struct {
apis.StandaloneResourceDetails
CloudregionResourceInfo
ManagedResourceInfo
SCloudproviderQuota
}

View File

@@ -17,10 +17,10 @@ package compute
import "yunion.io/x/onecloud/pkg/apis"
type CloudproviderregionDetails struct {
apis.JointResourceBaseDetails
CloudregionResourceInfo
apis.JoinModelBaseDetails
Cloudprovider string `json:"cloudprovider"`
Cloudprovider string
Cloudregion string
// 云账号Id
// example: fa4aaf88-aed8-422d-84e7-56dea533b364
@@ -38,18 +38,4 @@ type CloudproviderregionDetails struct {
// 自动同步周期
// example: 300
SyncIntervalSeconds int `json:"sync_interval_seconds"`
// 支持服务列表
Capabilities []string `json:"capabilities"`
}
type CloudproviderregionListInput struct {
apis.JointResourceBaseListInput
SyncableBaseResourceListInput
RegionalFilterListInput
ManagedResourceListInput
CapabilityListInput
// 是否启用
Enabled *bool `json:"enabled"`
}

View File

@@ -16,7 +16,10 @@ package compute
import "yunion.io/x/onecloud/pkg/apis"
type SCloudregionUsage struct {
type CloudregionDetails struct {
apis.StandaloneResourceDetails
SCloudregion
// 虚拟私有网络数量
// example: 2
VpcCount int `json:"vpc_count,allowempty"`
@@ -34,26 +37,11 @@ type SCloudregionUsage struct {
GuestIncrementCount int `json:"guest_increment_count,allowempty"`
}
type CloudregionDetails struct {
apis.EnabledStatusStandaloneResourceDetails
SCloudregionUsage
SCloudregion
// 云类型, public, private or onpremise
// example: public
CloudEnv string `json:"cloud_env"`
}
type CloudregionResourceInfo struct {
type CloudregionInfo struct {
// 区域的名称
// example: Default
Region string `json:"region"`
// 区域的名称
Cloudregion string `json:"cloudregion"`
// 区域的Id
// example: default
RegionId string `json:"region_id"`

View File

@@ -21,7 +21,6 @@ type DBInstanceCreateInput struct {
DeletePreventableCreateInput
// Ip子网名称或Id,建议使用Id
// 谷歌云并不实际使用Ip子网,仅仅通过Ip子网确定Vpc
// required: true
Network string `json:"network"`
// swagger:ignore
@@ -97,11 +96,10 @@ type DBInstanceCreateInput struct {
//
//
//
// | 平台 | 支持类型 | 说明 |
// | ----- | ------ | --- |
// | 华为云 |ha, single, replica| |
// | 阿里云 |basic, high_availability, always_on, finance||
// | Google |SECOND_GEN | FIRST_GEN 目前谷歌已弃用|
// | 平台 | 支持类型 |
// | ----- | ------ |
// | 华为云 |ha, single, replica|
// | 阿里云 |basic, high_availability, always_on, finance|
// 翻译:
// basic: 基础版
// high_availability: 高可用
@@ -110,7 +108,6 @@ type DBInstanceCreateInput struct {
// ha: 高可用
// single: 单机
// replica: 只读
// SECNOD_GEN: 第二代
// required: true
Category string `json:"category"`
@@ -121,10 +118,6 @@ type DBInstanceCreateInput struct {
// | 平台 | 支持类型 |
// | 华为云 |SSD, SAS, SATA|
// | 阿里云 |local_ssd, cloud_essd, cloud_ssd|
// | Google |PD_SSD, PD_HDD|
// 翻译:
// PD_SSD: SSD
// PD_HDD: HDD
// required: true
StorageType string `json:"storage_type"`
@@ -136,14 +129,8 @@ type DBInstanceCreateInput struct {
// rds初始化密码
// 阿里云不需要此参数
// 华为云会默认创建一个用户,若不传此参数, 则为随机密码
// 谷歌云会默认创建一个用户,若不传此参数, 则为随机密码
Password string `json:"password"`
// 是否不设置初始密码
// 华为云不支持此参数
// 谷歌云仅mysql支持此参数
ResetPassword *bool `json:"reset_password"`
// rds实例cpu大小
// 若指定实例套餐,此参数将根据套餐设置
VcpuCount int `json:"vcpu_count"`
@@ -177,104 +164,65 @@ type SDBInstanceRecoveryConfigInput struct {
type DBInstanceListInput struct {
apis.VirtualResourceListInput
apis.ExternalizedResourceBaseListInput
apis.DeletePreventableResourceBaseListInput
ZonalFilterListInput
ManagedResourceListInput
VpcFilterListInput
ZoneResourceInput
MasterInstance string `json:"master_instance"`
VcpuCount int `json:"vcpu_count"`
VmemSizeMb int `json:"vmem_size_mb"`
StorageType string `json:"storage_type"`
Category string `json:"category"`
Engine string `json:"engine"`
EngineVersion string `json:"engine_version"`
InstanceType string `json:"instance_type"`
}
type DBInstanceBackupListInput struct {
apis.VirtualResourceListInput
apis.ExternalizedResourceBaseListInput
ManagedResourceListInput
RegionalFilterListInput
DBInstanceFilterListInputBase
// RDS引擎
// example: MySQL
Engine []string `json:"engine"`
// RDS引擎版本
// example: 5.7
EngineVersion []string `json:"engine_version"`
// 备份模式
BackupMode []string `json:"backup_mode"`
// 数据库名称
DBNames string `json:"db_names"`
DbinstanceFilterListInput
}
type DBInstancePrivilegeListInput struct {
apis.ResourceBaseListInput
apis.ExternalizedResourceBaseListInput
// filter by dbinstanceaccount
Dbinstanceaccount string `json:"dbinstanceaccount"`
// filter by dbinstancedatabase
Dbinstancedatabase string `json:"dbinstancedatabase"`
// 权限
Privilege []string `json:"privilege"`
}
type DBInstanceParameterListInput struct {
apis.StandaloneResourceListInput
apis.ExternalizedResourceBaseListInput
DBInstanceFilterListInput
// 参数名称
Key []string `json:"key"`
// 参数值
Value []string `json:"value"`
DbinstanceFilterListInput
}
type DBInstanceDatabaseListInput struct {
apis.StatusStandaloneResourceListInput
apis.ExternalizedResourceBaseListInput
DBInstanceFilterListInput
// 数据库字符集
CharacterSet []string `json:"character_set"`
DbinstanceFilterListInput
}
type DBInstanceAccountListInput struct {
apis.StatusStandaloneResourceListInput
apis.ExternalizedResourceBaseListInput
DBInstanceFilterListInput
DbinstanceFilterListInput
}
type DbinstanceFilterListInput struct {
// filter by dbinstance
Dbinstance string `json:"dbinstance"`
// swagger:ignore
// Deprecated
// filter by dbinstance_id
DbinstanceId string `json:"dbinstance_id" "yunion:deprecated-by":"dbinstance"`
}
type DBInstanceDetails struct {
apis.VirtualResourceDetails
CloudregionResourceInfo
ManagedResourceInfo
VpcResourceInfoBase
SDBInstance
CloudproviderInfo
// 虚拟私有网络名称
// example: test-vpc
Vpc string `json:"vpc"`
// 安全组名称
// example: Default
Secgroup string `json:"secgroup"`
@@ -284,47 +232,6 @@ type DBInstanceDetails struct {
// IP子网名称
// example: test-network
Network string `json:"network"`
// Zone1名称
Zone1Name string `json:"zone1_name"`
// Zone2名称
Zone2Name string `json:"zone2_name"`
// Zone3名称
Zone3Name string `json:"zone3_name"`
}
type DBInstanceResourceInfoBase struct {
// RDS实例名称
DBInstance string `json:"dbinstance"`
}
type DBInstanceResourceInfo struct {
DBInstanceResourceInfoBase
// 归属VPC ID
VpcId string `json:"vpc_id"`
VpcResourceInfo
}
type DBInstanceResourceInput struct {
// RDS实例(ID or Name)
DBInstance string `json:"dbinstance"`
// swagger:ignore
// Deprecated
DBInstanceId string `json:"dbinstance_id" "yunion:deprecated-by":"dbinstance"`
}
type DBInstanceFilterListInputBase struct {
DBInstanceResourceInput
// 以RDS实例名字排序
OrderByDBInstance string `json:"order_by_dbinstance"`
}
type DBInstanceFilterListInput struct {
DBInstanceFilterListInputBase
VpcFilterListInput
// 标签信息
Metadata map[string]string `json:"metadata"`
}

View File

@@ -80,14 +80,9 @@ type DBInstancePrivilege struct {
}
type DBInstanceAccountDetails struct {
apis.StatusStandaloneResourceDetails
apis.ProjectizedResourceInfo
DBInstanceResourceInfo
apis.StandaloneResourceDetails
SDBInstanceAccount
// 账号权限列表
DBInstanceprivileges []DBInstancePrivilege `json:"dbinstanceprivileges,allowempty"`
ProjectId string `json:"tenant_id"`
}

View File

@@ -45,10 +45,10 @@ type DBInstanceBackupCreateInput struct {
type DBInstanceBackupDetails struct {
apis.VirtualResourceDetails
ManagedResourceInfo
CloudregionResourceInfo
DBInstanceResourceInfoBase
SDBInstanceBackup
// RDS实例名称
DBInstance string `json:"dbinstance"`
CloudproviderInfo
}

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