mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/yunionio/cloudpods.git
synced 2026-09-21 00:24:07 +08:00
Compare commits
421 Commits
master
...
release/3.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d78801de92 | ||
|
|
ee67be37ba | ||
|
|
54246ddbff | ||
|
|
bed9513cc4 | ||
|
|
8b02911971 | ||
|
|
e216b8a6e2 | ||
|
|
61f72a4050 | ||
|
|
5674742f1e | ||
|
|
d5b26cb86a | ||
|
|
efddf8e684 | ||
|
|
faddb1a8db | ||
|
|
c46a33213f | ||
|
|
f89f201fca | ||
|
|
59f0b1d055 | ||
|
|
1fd00a55c3 | ||
|
|
d2bef87f7a | ||
|
|
8cb0af6b9e | ||
|
|
9b36b35b9f | ||
|
|
5496190609 | ||
|
|
11a30253a2 | ||
|
|
cfbff4c6e8 | ||
|
|
b6fcbf69ec | ||
|
|
f7f7684058 | ||
|
|
85c50c66db | ||
|
|
51449715d7 | ||
|
|
8e369cdaf9 | ||
|
|
8a5f92e483 | ||
|
|
759ece9157 | ||
|
|
23a50965bf | ||
|
|
242067dade | ||
|
|
1deac016de | ||
|
|
0e5be2411a | ||
|
|
3e391b8c87 | ||
|
|
8367883903 | ||
|
|
967ef380de | ||
|
|
ce44e5eac9 | ||
|
|
69eb5f23a8 | ||
|
|
74771980c3 | ||
|
|
6dd0e1f5f6 | ||
|
|
1aa8a006ee | ||
|
|
d004daed62 | ||
|
|
addf0135fc | ||
|
|
94b6f9578d | ||
|
|
f700d196d9 | ||
|
|
c04c2c9370 | ||
|
|
dc8dbe2cd8 | ||
|
|
bf7cb394dd | ||
|
|
2f220f81e6 | ||
|
|
ba3784e06d | ||
|
|
9f3bb73ba5 | ||
|
|
c41e19f89c | ||
|
|
e51bc1a0d9 | ||
|
|
f7603a5d1c | ||
|
|
608b165684 | ||
|
|
86bde0d072 | ||
|
|
895f4869fb | ||
|
|
896e0889ec | ||
|
|
1a24f1c6f6 | ||
|
|
34076f6a68 | ||
|
|
7c0b1b78fa | ||
|
|
7a40f3b21a | ||
|
|
ac78690de6 | ||
|
|
ce4c5f8111 | ||
|
|
120f74104f | ||
|
|
e32a86771f | ||
|
|
8895e6c87b | ||
|
|
9402c6c605 | ||
|
|
44b9c9dc7a | ||
|
|
418d4c94d4 | ||
|
|
ce7a80a766 | ||
|
|
df4b128c43 | ||
|
|
668647a829 | ||
|
|
222864f956 | ||
|
|
4a0c07344e | ||
|
|
33afd8ae1b | ||
|
|
d8b227cb56 | ||
|
|
1671f59220 | ||
|
|
dfd0f4a79c | ||
|
|
3877b8a1ef | ||
|
|
acf3378ea4 | ||
|
|
ced0db5887 | ||
|
|
ac1f2a035d | ||
|
|
319fbec787 | ||
|
|
9ba4deea95 | ||
|
|
3f9510ec41 | ||
|
|
54c36d25b0 | ||
|
|
438b72889d | ||
|
|
84488d6216 | ||
|
|
07793043cd | ||
|
|
67ef087f31 | ||
|
|
faed260f4f | ||
|
|
cd8b10e1e9 | ||
|
|
9ee4b45813 | ||
|
|
e910bf9dec | ||
|
|
2bf3f78895 | ||
|
|
87f3e23ab1 | ||
|
|
f5859655f4 | ||
|
|
3e670ad61e | ||
|
|
50647afd2c | ||
|
|
fadf3944a6 | ||
|
|
c34178acfa | ||
|
|
614e750fd7 | ||
|
|
e16cf8438c | ||
|
|
884a9ffcee | ||
|
|
eb70e65693 | ||
|
|
1d29435908 | ||
|
|
3e8782574a | ||
|
|
1a233d1bfa | ||
|
|
ff0743ff5d | ||
|
|
26da5181cb | ||
|
|
c42517a099 | ||
|
|
cad7cfa55b | ||
|
|
c28c09364c | ||
|
|
1e1e9c3007 | ||
|
|
138907b0ec | ||
|
|
77a9ffe2a4 | ||
|
|
4900c09d6c | ||
|
|
68671531d3 | ||
|
|
09798624a5 | ||
|
|
66e5aa0b7e | ||
|
|
90e5e3a474 | ||
|
|
be43244385 | ||
|
|
474a90dc31 | ||
|
|
a2b21c55b8 | ||
|
|
e7afdcd6dc | ||
|
|
5f148c9a03 | ||
|
|
2a3cb2107d | ||
|
|
03bde9182f | ||
|
|
3af492417f | ||
|
|
e4fc059588 | ||
|
|
4080665f58 | ||
|
|
63e2a97dfd | ||
|
|
f0927f0aba | ||
|
|
5d69bdfbdf | ||
|
|
dc2cd4f111 | ||
|
|
29054379a9 | ||
|
|
07df2aac53 | ||
|
|
10ca788e09 | ||
|
|
071c6e0cfe | ||
|
|
930605f7a0 | ||
|
|
3e7f4c9983 | ||
|
|
05330f18fc | ||
|
|
7ae0543dae | ||
|
|
c703061b7f | ||
|
|
cb5cbc4075 | ||
|
|
ba1bbdb572 | ||
|
|
a46c865826 | ||
|
|
2138f65f3a | ||
|
|
b9cda0a032 | ||
|
|
cb5b0651b9 | ||
|
|
aee9c6db46 | ||
|
|
5b9ef62f5b | ||
|
|
afac4573bb | ||
|
|
3c2013cd82 | ||
|
|
6966494f41 | ||
|
|
1dfd41697b | ||
|
|
71f559cf9d | ||
|
|
25f7839d56 | ||
|
|
f483d04ce8 | ||
|
|
15ec011e36 | ||
|
|
cda4ddc7c5 | ||
|
|
c7dfaea1aa | ||
|
|
7fbf8b46b5 | ||
|
|
2da0872af3 | ||
|
|
8c8ceb1dce | ||
|
|
328f652ee8 | ||
|
|
8684590041 | ||
|
|
9ffadeb978 | ||
|
|
cf3cfda698 | ||
|
|
0d1dc01cbd | ||
|
|
fe31a4b35e | ||
|
|
684aa1a2c8 | ||
|
|
0839c6964e | ||
|
|
7b30dcab08 | ||
|
|
df76ac5217 | ||
|
|
6bb4e468c0 | ||
|
|
4f7c1a7082 | ||
|
|
13b451b465 | ||
|
|
a96a57e920 | ||
|
|
9cdbf61062 | ||
|
|
401cc40655 | ||
|
|
fda7529b3f | ||
|
|
ebd7f5d5df | ||
|
|
248a2ba7df | ||
|
|
055c9ab3db | ||
|
|
d624c2d763 | ||
|
|
72e665fb0b | ||
|
|
b4cfdd8246 | ||
|
|
46b7428b1d | ||
|
|
47a7979868 | ||
|
|
28dede02cb | ||
|
|
8632769265 | ||
|
|
8ca9d0c289 | ||
|
|
dd89bf8558 | ||
|
|
d23148559f | ||
|
|
601f3e5062 | ||
|
|
283122bcb1 | ||
|
|
c7dc8917d8 | ||
|
|
801bf239c1 | ||
|
|
416141992e | ||
|
|
efea50cf0b | ||
|
|
695f6c0e31 | ||
|
|
65044937e0 | ||
|
|
f6a1ebd244 | ||
|
|
986b7d2360 | ||
|
|
b5461d344e | ||
|
|
da2e6faa4f | ||
|
|
6e95e21e98 | ||
|
|
70eea30d9e | ||
|
|
6c4f4cb53f | ||
|
|
0a3f6a10ad | ||
|
|
35ef9f44df | ||
|
|
414b4e5c32 | ||
|
|
d2510bcacd | ||
|
|
906c86cecf | ||
|
|
7a0b878cac | ||
|
|
2791eb0fd0 | ||
|
|
997204711f | ||
|
|
a3ebd7ca97 | ||
|
|
b0e979ada6 | ||
|
|
a6f7647cdd | ||
|
|
d10428aaf3 | ||
|
|
0bf8d46a7b | ||
|
|
a6834fe8ae | ||
|
|
e4fff38c43 | ||
|
|
00b5de7592 | ||
|
|
12c6181721 | ||
|
|
b4d1a1beeb | ||
|
|
efe7032213 | ||
|
|
77370b4db6 | ||
|
|
40139b4ab8 | ||
|
|
c5f0dcedb5 | ||
|
|
836a8d66e2 | ||
|
|
e784f3fdd9 | ||
|
|
0bac7ce2ed | ||
|
|
10b92a21ec | ||
|
|
9992dc8c45 | ||
|
|
e57717fd65 | ||
|
|
3e66dd7935 | ||
|
|
a02ae55bd8 | ||
|
|
1283f5a21a | ||
|
|
825a6c688c | ||
|
|
e1ac3dab00 | ||
|
|
66df0b471c | ||
|
|
06091448ee | ||
|
|
7511a61b8f | ||
|
|
5eed2dfa8b | ||
|
|
c225ba2842 | ||
|
|
5151221d67 | ||
|
|
b8cbee8ad1 | ||
|
|
4adf426392 | ||
|
|
ca0a61986b | ||
|
|
e9d997d4c9 | ||
|
|
50db770fd1 | ||
|
|
9d33639255 | ||
|
|
3a567dd4de | ||
|
|
d74a15a982 | ||
|
|
418961eb5b | ||
|
|
69d8111d16 | ||
|
|
9f7e71502b | ||
|
|
915ebe03f9 | ||
|
|
a2de0be8f2 | ||
|
|
2cde41c446 | ||
|
|
04d4e084b1 | ||
|
|
bae7791792 | ||
|
|
aa9c91d6e5 | ||
|
|
13a100fefe | ||
|
|
0b7c9359e3 | ||
|
|
11a5be8cd5 | ||
|
|
b13d6624f5 | ||
|
|
f74bff88bb | ||
|
|
0359bb2ac2 | ||
|
|
a307cc9196 | ||
|
|
2a7bfec231 | ||
|
|
c62dee61f7 | ||
|
|
01e3ad9c8c | ||
|
|
99c8eadf63 | ||
|
|
05d3d72ec1 | ||
|
|
d0bfc648ca | ||
|
|
58d6f00780 | ||
|
|
f69f776622 | ||
|
|
2b95099cc2 | ||
|
|
9d51fa258b | ||
|
|
c7fa14e218 | ||
|
|
f82507c1f6 | ||
|
|
5a403a3b13 | ||
|
|
0b24305ccc | ||
|
|
dc421032d6 | ||
|
|
3fdb3307ab | ||
|
|
d1c28f0783 | ||
|
|
8aec56d79f | ||
|
|
ab1ec19889 | ||
|
|
f65c73e867 | ||
|
|
e5d872c736 | ||
|
|
90af685f30 | ||
|
|
316d602e73 | ||
|
|
ed4450fe74 | ||
|
|
d0bf468c7f | ||
|
|
e853102e86 | ||
|
|
dc0c8d8dbd | ||
|
|
616f31bda6 | ||
|
|
ffadbecc1b | ||
|
|
63e764a150 | ||
|
|
0900818b36 | ||
|
|
eb102ad7e4 | ||
|
|
903e5f5203 | ||
|
|
489cb9eb51 | ||
|
|
9662fafc22 | ||
|
|
cfd676fb2a | ||
|
|
5994a41aaf | ||
|
|
fdc6d25b11 | ||
|
|
ffcdd48943 | ||
|
|
88db3152d1 | ||
|
|
b4cd3d758c | ||
|
|
f36286f01f | ||
|
|
3feac61a8c | ||
|
|
7c9db8b74a | ||
|
|
c342e2ed0e | ||
|
|
a7284ae91e | ||
|
|
a1e0f31b2c | ||
|
|
cb286278ee | ||
|
|
fb10c1d110 | ||
|
|
19c74d3f67 | ||
|
|
ceb676f772 | ||
|
|
1b54853483 | ||
|
|
cc1033fa86 | ||
|
|
ac393698fa | ||
|
|
449e8f20d8 | ||
|
|
7421f51264 | ||
|
|
9a6efbabd8 | ||
|
|
fcc042ebc7 | ||
|
|
d98a9bf271 | ||
|
|
c6189143b0 | ||
|
|
6be9007bb6 | ||
|
|
cea38096d8 | ||
|
|
209019e3f4 | ||
|
|
44eb35e30e | ||
|
|
d9dfd1b132 | ||
|
|
7e5e95c507 | ||
|
|
ba1291be82 | ||
|
|
2039692352 | ||
|
|
bf5bf13f1e | ||
|
|
141d7a5d8b | ||
|
|
d88a256396 | ||
|
|
d3e88ca93e | ||
|
|
b9442fc9c3 | ||
|
|
e3096bf5fc | ||
|
|
705efd5986 | ||
|
|
357ef9b91a | ||
|
|
7aca6fb14e | ||
|
|
1883fb9fc6 | ||
|
|
7643f7f056 | ||
|
|
57a060fa30 | ||
|
|
cccc4aea88 | ||
|
|
bf5885c2d8 | ||
|
|
6c670bed68 | ||
|
|
f37c58ed24 | ||
|
|
fadf610d9b | ||
|
|
e5ab58e510 | ||
|
|
1b1546b34b | ||
|
|
4001e57e39 | ||
|
|
42137e0c98 | ||
|
|
e4f2b5b884 | ||
|
|
e80b3fccc9 | ||
|
|
a3372a8acb | ||
|
|
b4a2bef741 | ||
|
|
202b0182fa | ||
|
|
efe9705c9d | ||
|
|
4fabb7f1f8 | ||
|
|
067684986c | ||
|
|
71e9e0ef36 | ||
|
|
5fa772f6d0 | ||
|
|
b91a7e7027 | ||
|
|
084c4fdef9 | ||
|
|
fea5c0d4a7 | ||
|
|
26e2372212 | ||
|
|
9c24611d46 | ||
|
|
a0a91ac21d | ||
|
|
aad55012f7 | ||
|
|
d0bf44c0a0 | ||
|
|
306d66d074 | ||
|
|
e8810a90d8 | ||
|
|
4d0f161fc4 | ||
|
|
b61dbae008 | ||
|
|
6db39b85e1 | ||
|
|
1faccb0262 | ||
|
|
e2e8fc02b6 | ||
|
|
a9c93dcc15 | ||
|
|
c44f33ec6c | ||
|
|
62ddb14873 | ||
|
|
62ea988107 | ||
|
|
787576c9d0 | ||
|
|
18ae38cb23 | ||
|
|
14da90405a | ||
|
|
bec94ba87e | ||
|
|
aec2030e73 | ||
|
|
060140a64d | ||
|
|
24d57b02f8 | ||
|
|
9b17294fc0 | ||
|
|
2de8d92c28 | ||
|
|
5d32cc8d28 | ||
|
|
5fb4a3bc5e | ||
|
|
d51c264694 | ||
|
|
61dae38bfb | ||
|
|
0bbf9a9374 | ||
|
|
ee44f7ea92 | ||
|
|
396aa79087 | ||
|
|
72a32e059e | ||
|
|
25bde052dc | ||
|
|
2f32a749f2 | ||
|
|
b182b1dd08 | ||
|
|
e6589cea31 | ||
|
|
236ab429f6 | ||
|
|
fded8ab79f | ||
|
|
1ba4b69fdc | ||
|
|
a6881c2047 | ||
|
|
07a8a98e6f | ||
|
|
01886ae732 | ||
|
|
7e864dcb56 | ||
|
|
6b201dcc26 | ||
|
|
4b9b468f0e |
@@ -7,7 +7,7 @@ jobs:
|
||||
requires:
|
||||
- check
|
||||
docker:
|
||||
- image: yunion/centos-build:go-1.18.3-0
|
||||
- image: yunion/centos-build:go-1.21.10-0
|
||||
environment:
|
||||
ONECLOUD_CI_BUILD: "1"
|
||||
|
||||
|
||||
4
.github/workflows/ci-pr-build-test.yml
vendored
4
.github/workflows/ci-pr-build-test.yml
vendored
@@ -13,7 +13,7 @@ jobs:
|
||||
- name: Setup Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Install check tools
|
||||
shell: bash
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
export GO111MODULE=on
|
||||
make -j3 check
|
||||
make test
|
||||
targets="$(find cmd -mindepth 1 -maxdepth 1 -type d | grep -v cmd/host-image)"
|
||||
targets="$(find cmd -mindepth 1 -maxdepth 1 -type d | grep -v cmd/host-image | grep -v torrent)"
|
||||
echo $targets | tr ' ' '\n'
|
||||
make $targets
|
||||
ls -lh _output/bin
|
||||
|
||||
2
.github/workflows/docker_apigateway.yml
vendored
2
.github/workflows/docker_apigateway.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_climc.yml
vendored
2
.github/workflows/docker_climc.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_cloudmon.yml
vendored
2
.github/workflows/docker_cloudmon.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_esxi_agent.yml
vendored
2
.github/workflows/docker_esxi_agent.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_glance.yml
vendored
2
.github/workflows/docker_glance.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_host.yml
vendored
2
.github/workflows/docker_host.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_keystone.yml
vendored
2
.github/workflows/docker_keystone.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_logger.yml
vendored
2
.github/workflows/docker_logger.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_notify.yml
vendored
2
.github/workflows/docker_notify.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_region.yml
vendored
2
.github/workflows/docker_region.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_scheduler.yml
vendored
2
.github/workflows/docker_scheduler.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
2
.github/workflows/docker_webconsole.yml
vendored
2
.github/workflows/docker_webconsole.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
|
||||
- uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.18'
|
||||
go-version: '1.21'
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
|
||||
13
Makefile
13
Makefile
@@ -81,7 +81,7 @@ gencopyright:
|
||||
@bash scripts/gencopyright.sh pkg cmd
|
||||
|
||||
test:
|
||||
@go test $(GO_BUILD_FLAGS) $(shell go list ./... | egrep -v 'host-image|hostimage')
|
||||
@go test $(GO_BUILD_FLAGS) $(shell go list ./... | egrep -v 'host-image|hostimage|torrent')
|
||||
|
||||
vet:
|
||||
go vet ./...
|
||||
@@ -89,11 +89,14 @@ vet:
|
||||
# cmd/esxi-agent: prepare_dir
|
||||
# CGO_ENABLED=0 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
|
||||
|
||||
cmd/fetcherfs: prepare_dir
|
||||
CGO_ENABLED=0 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
|
||||
cmd/host: prepare_dir
|
||||
CGO_ENABLED=1 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
|
||||
|
||||
cmd/host-image: prepare_dir
|
||||
CGO_ENABLED=1 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
|
||||
|
||||
cmd/%: prepare_dir
|
||||
$(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
|
||||
CGO_ENABLED=0 $(GO_BUILD) -o $(BIN_DIR)/$(shell basename $@) $(REPO_PREFIX)/$@
|
||||
|
||||
rpm/%: cmd/%
|
||||
$(BUILD_SCRIPT) $*
|
||||
@@ -282,7 +285,7 @@ dep:
|
||||
@echo "$$depDeprecated"
|
||||
@$(MAKE) mod
|
||||
|
||||
RELEASE_BRANCH:=master
|
||||
RELEASE_BRANCH:=release/3.12
|
||||
GOPROXY ?= direct
|
||||
|
||||
mod:
|
||||
|
||||
@@ -8,8 +8,8 @@ endif
|
||||
ModBaseName:=$(notdir $(ModName))
|
||||
|
||||
DockerImageRegistry?=registry.cn-beijing.aliyuncs.com
|
||||
DockerImageAlpineBuild?=$(DockerImageRegistry)/yunionio/alpine-build:3.16.0-go-1.18.2-0
|
||||
DockerImageCentOSBuild?=$(DockerImageRegistry)/yunionio/centos-build:go-1.18.3-0
|
||||
DockerImageAlpineBuild?=$(DockerImageRegistry)/yunionio/alpine-build:3.19.0-go-1.21.10-0
|
||||
DockerImageCentOSBuild?=$(DockerImageRegistry)/yunionio/centos-build:go-1.21.10-0
|
||||
|
||||
EnvIf=$(if $($(1)),$(1)=$($(1)))
|
||||
|
||||
|
||||
@@ -6,6 +6,14 @@ fi
|
||||
|
||||
test -f /etc/yunion/rcadmin && source /etc/yunion/rcadmin
|
||||
|
||||
if [ -n "$OS_AUTH_TOKEN" ]; then
|
||||
test -n "$OS_USERNAME" && unset OS_USERNAME
|
||||
test -n "$OS_PASSWORD" && unset OS_PASSWORD
|
||||
test -n "$OS_DOMAIN_NAME" && unset OS_DOMAIN_NAME
|
||||
test -n "$OS_ACCESS_KEY" && unset OS_ACCESS_KEY
|
||||
test -n "$OS_SECRET_KEY" && unset OS_SECRET_KEY
|
||||
fi
|
||||
|
||||
source <(climc --completion bash)
|
||||
source <(kubectl completion bash)
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0"?>
|
||||
<EntityDescriptor xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
|
||||
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
|
||||
xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://www.volcengine.com/">
|
||||
<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" WantAssertionsSigned="true">
|
||||
<KeyDescriptor use="signing">
|
||||
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
|
||||
<ds:X509Data>
|
||||
<ds:X509Certificate>MIIDJjCCAg6gAwIBAgIUF3lH8/cdlQeyPBqt066RFnt3cI4wDQYJKoZIhvcNAQELBQAwJTEjMCEGA1UEAxMadXJuOnZvbGNlbmdpbmU6d2Vic2VydmljZXMwHhcNMjMwODA4MDIzNzI4WhcNMzMwODIxMTYwMDAwWjAlMSMwIQYDVQQDExp1cm46dm9sY2VuZ2luZTp3ZWJzZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPZ+nhODpFTe+A8PbuZYA5XDQ04WckV1A5U90tKaaUX5uKLUYfDtFA1TwMO/qG87LU/0Pxs4FhgZJkUOeBHkyYzzXZQvtfsJ9frcKkcTjX/WF4XJyitXCULSjhcclMS3gOqeI/Mo3P90KutfhNli/mAHQJaRsuPFG4ZwBusbUo8i5sqBqt/Sg8JapH7DjEU2mN1165o59gavPGSByPeEuu28EkivVFcI7Jox5ztwgMrOYY+pYP9GeSurzpyLq3CfvvahTsAJjuHDHTTnYNcq/I3VOap/y4cOU6vgxcQvBmgb+CBvGldjn0em3BIn5meQwuB6jfQ7kqBaO1PRD1nhDTMCAwEAAaNOMEwwSgYIKwYBBQUHAQEEPjA8MDoGCCsGAQUFBzABhi5odHRwOi8vbmV4dXMtcHJvZHVjdGlvbi5ieXRlZGFuY2UubmV0L3BjYS9vY3NwMA0GCSqGSIb3DQEBCwUAA4IBAQBxySDr9TPJxRN+otrFDaV8HSeFKUUSO3+r8bEVAXmS+xUsdUOZbaf2r/g+eKrW58dpn+iBWTAAKug9Jwe5KVGqB7G5r2r6k/eI5dvv5r/Fr5T7NppRCXKQTQiAhrrVlqttsagPztJ6LmVAcm4sh4Ckx99FgibQCbT/zui+c6IUyEQcVIwtmoPANl3K2Yn85t+G+Cu9xxXY0JPlZcUHntHg0R0PUWc3LuzLXnff7JWEzPyhMUBLpQk5BltxuD5cTGCA6WafJuBTAqkt48VN0MFTP5c5m3PJFz8Ro1GLY8hw1uhUEx28DKBkQSGpkZNx0oJXETIDpSBfD0dHWBvZQPd0</ds:X509Certificate>
|
||||
</ds:X509Data>
|
||||
</ds:KeyInfo>
|
||||
</KeyDescriptor>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</NameIDFormat>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</NameIDFormat>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</NameIDFormat>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName</NameIDFormat>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos</NameIDFormat>
|
||||
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:entity</NameIDFormat>
|
||||
<AssertionConsumerService index="1" isDefault="true" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://signin.volcengine.com/saml/sso"/>
|
||||
<AttributeConsumingService index="1">
|
||||
<ServiceName xml:lang="en">Volcengine Single Sign-On</ServiceName>
|
||||
<RequestedAttribute isRequired="true" Name="https://www.volcengine.com/SAML/Attributes/Identity" FriendlyName="Identity"/>
|
||||
<RequestedAttribute isRequired="true" Name="https://www.volcengine.com/SAML/Attributes/SessionName" FriendlyName="SessionName"/>
|
||||
<RequestedAttribute isRequired="false" Name="https://www.volcengine.com/SAML/Attributes/SessionDuration" FriendlyName="SessionDuration"/>
|
||||
|
||||
</AttributeConsumingService>
|
||||
</SPSSODescriptor>
|
||||
<Organization>
|
||||
<OrganizationName xml:lang="en">Volcengine, Inc.</OrganizationName>
|
||||
<OrganizationDisplayName xml:lang="en">Volcengine</OrganizationDisplayName>
|
||||
<OrganizationURL xml:lang="en">https://www.volcengine.com</OrganizationURL>
|
||||
</Organization>
|
||||
</EntityDescriptor>
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.4.6
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/host-deployer-base:1.4.9
|
||||
|
||||
MAINTAINER "Yaoqi Wan wanyaoqi@yunionyun.com"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:3.16.0-go-1.18.2-0 as build
|
||||
FROM registry.cn-beijing.aliyuncs.com/yunionio/alpine-build:3.19.0-go-1.21.10-0 as build
|
||||
ARG TARGETPLATFORM
|
||||
ARG BUILDPLATFORM
|
||||
RUN mkdir -p /root/go/src/yunion.io/x/onecloud
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
触发时间: {{.start_time}}
|
||||
报警级别: {{.level}}
|
||||
触发条件: {{.description | unescaped}}
|
||||
资源数量:{{len .matches}}
|
||||
报警数量:{{len .matches}}
|
||||
资源名称:{{.resource_name}}
|
||||
|
||||
详情地址: {{.web_url}}
|
||||
@@ -108,6 +108,7 @@
|
||||
<td>名称</td>
|
||||
<td>IP</td>
|
||||
<td>平台</td>
|
||||
<td>指标</td>
|
||||
<td>触发值</td>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -124,7 +125,8 @@
|
||||
<td>
|
||||
{{ index .tags "brand" }}
|
||||
</td>
|
||||
<td>{{$Matche.value_str}}</td>
|
||||
<td>{{ $Matche.metric }}</td>
|
||||
<td>{{ $Matche.value_str }}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
|
||||
@@ -3,7 +3,7 @@ AlertName: {{.name}}
|
||||
Time: {{.start_time}}
|
||||
Level: {{.level}}
|
||||
TriggerCondition: {{.description | unescaped}}
|
||||
ResourceCount: {{len .matches}}
|
||||
AlertCount: {{len .matches}}
|
||||
ResourceName: {{.resource_name}}
|
||||
|
||||
WebUrl: {{.web_url}}
|
||||
|
||||
@@ -108,6 +108,7 @@
|
||||
<td>Name</td>
|
||||
<td>IP</td>
|
||||
<td>Brand</td>
|
||||
<td>Metric</td>
|
||||
<td>Trigger value</td>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -124,7 +125,8 @@
|
||||
<td>
|
||||
{{ index .tags "brand" }}
|
||||
</td>
|
||||
<td>{{$Matche.value_str}}</td>
|
||||
<td>{{ $Matche.metric }}</td>
|
||||
<td>{{ $Matche.value_str }}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
|
||||
@@ -25,6 +25,10 @@ func init() {
|
||||
cmd.List(&compute.AppListOptions{})
|
||||
cmd.Show(&compute.AppIdOptions{})
|
||||
cmd.Perform("syncstatus", &compute.AppIdOptions{})
|
||||
cmd.Get("hybird-connections", &compute.AppIdOptions{})
|
||||
cmd.Get("certificates", &compute.AppIdOptions{})
|
||||
cmd.Get("backups", &compute.AppIdOptions{})
|
||||
cmd.Get("custom-domains", &compute.AppIdOptions{})
|
||||
|
||||
cmd1 := shell.NewResourceCmd(&modules.AppEnvironments)
|
||||
cmd1.List(&compute.AppEnvironmentListOptions{})
|
||||
|
||||
@@ -50,4 +50,10 @@ func init() {
|
||||
ibCmd.Create(&compute.InstanceBackupManagerCreateFromPackageOptions{})
|
||||
ibCmd.Perform("syncstatus", &compute.DiskBackupSyncstatusOptions{})
|
||||
ibCmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
|
||||
|
||||
hbsCmd := shell.NewJointCmd(&modules.HostBackupstorages)
|
||||
hbsCmd.List(&compute.HostBackupStorageListOptions{})
|
||||
hbsCmd.Show(&compute.HostBackupStorageJoinOptions{})
|
||||
hbsCmd.Attach(&compute.HostBackupStorageJoinOptions{})
|
||||
hbsCmd.Detach(&compute.HostBackupStorageJoinOptions{})
|
||||
}
|
||||
|
||||
50
cmd/climc/shell/compute/baremetal_profiles.go
Normal file
50
cmd/climc/shell/compute/baremetal_profiles.go
Normal file
@@ -0,0 +1,50 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package compute
|
||||
|
||||
import (
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/pkg/util/printutils"
|
||||
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
baremetalmodules "yunion.io/x/onecloud/pkg/mcclient/modules/compute/baremetal"
|
||||
baremetaloptions "yunion.io/x/onecloud/pkg/mcclient/options/compute/baremetal"
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&baremetalmodules.BaremetalProfiles)
|
||||
cmd.List(new(baremetaloptions.BaremetalProfileListOptions))
|
||||
cmd.Show(new(baremetaloptions.BaremetalProfileIdOptions))
|
||||
cmd.Delete(new(baremetaloptions.BaremetalProfileIdOptions))
|
||||
|
||||
type BaremetalProfileMatchOpts struct {
|
||||
OEMNAME string
|
||||
MODEL string
|
||||
}
|
||||
R(&BaremetalProfileMatchOpts{}, "baremetal-profile-match", "find match baremetal profile by oemname and model", func(s *mcclient.ClientSession, args *BaremetalProfileMatchOpts) error {
|
||||
specs, err := baremetalmodules.BaremetalProfiles.GetMatchProfiles(s, args.OEMNAME, args.MODEL)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "GetMatchProfiles")
|
||||
}
|
||||
listResults := printutils.ListResult{}
|
||||
for _, spec := range specs {
|
||||
listResults.Data = append(listResults.Data, jsonutils.Marshal(spec))
|
||||
}
|
||||
printList(&listResults, nil)
|
||||
return nil
|
||||
})
|
||||
}
|
||||
@@ -15,62 +15,17 @@
|
||||
package compute
|
||||
|
||||
import (
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
opts "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
type CachedImageListOptions struct {
|
||||
options.BaseListOptions
|
||||
ImageType string `help:"image type" choices:"system|customized|shared|market"`
|
||||
|
||||
Region string `help:"show images cached at cloud region"`
|
||||
Zone string `help:"show images cached at zone"`
|
||||
|
||||
HostSchedtagId string `help:"filter cached image with host schedtag"`
|
||||
Valid *bool `help:"valid cachedimage"`
|
||||
}
|
||||
R(&CachedImageListOptions{}, "cached-image-list", "List cached images", func(s *mcclient.ClientSession, args *CachedImageListOptions) error {
|
||||
params, err := options.ListStructToParams(args)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
result, err := modules.Cachedimages.List(s, params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printList(result, modules.Cachedimages.GetColumns(s))
|
||||
return nil
|
||||
})
|
||||
|
||||
type CachedImageShowOptions struct {
|
||||
ID string `help:"ID or Name of the cached image to show"`
|
||||
}
|
||||
R(&CachedImageShowOptions{}, "cached-image-show", "Show cached image details", func(s *mcclient.ClientSession, args *CachedImageShowOptions) error {
|
||||
result, err := modules.Cachedimages.Get(s, args.ID, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&CachedImageShowOptions{}, "cached-image-refresh", "Refresh cached image details", func(s *mcclient.ClientSession, args *CachedImageShowOptions) error {
|
||||
result, err := modules.Cachedimages.PerformAction(s, args.ID, "refresh", nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
type CachedImageDeleteOptions struct {
|
||||
ID []string `help:"ID or Name of the cached image to show"`
|
||||
}
|
||||
R(&CachedImageDeleteOptions{}, "cached-image-delete", "Remove cached image information", func(s *mcclient.ClientSession, args *CachedImageDeleteOptions) error {
|
||||
results := modules.Cachedimages.BatchDelete(s, args.ID, nil)
|
||||
printBatchResults(results, modules.Cachedimages.GetColumns(s))
|
||||
return nil
|
||||
})
|
||||
cmd := shell.NewResourceCmd(&modules.Cachedimages).WithKeyword("cached-image")
|
||||
cmd.List(&options.CachedImageListOptions{})
|
||||
cmd.Show(&opts.BaseIdOptions{})
|
||||
cmd.PerformClass("cache-image", &options.CachedImageCacheImageOptions{})
|
||||
cmd.Perform("refresh", &opts.BaseIdOptions{})
|
||||
cmd.BatchDelete(&opts.BaseIdsOptions{})
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -17,13 +17,14 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.DBInstanceAccounts).WithKeyword("dbinstance-account")
|
||||
cmd.List(&options.DBInstanceAccountListOptions{})
|
||||
cmd.Update(&options.BaseUpdateOptions{})
|
||||
cmd.Update(&baseoptions.BaseUpdateOptions{})
|
||||
cmd.Show(&options.DBInstanceAccountIdOptions{})
|
||||
cmd.Delete(&options.DBInstanceAccountIdOptions{})
|
||||
}
|
||||
|
||||
@@ -17,13 +17,14 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.DBInstanceDatabases).WithKeyword("dbinstance-database")
|
||||
cmd.List(&options.DBInstanceDatabaseListOptions{})
|
||||
cmd.Update(&options.BaseUpdateOptions{})
|
||||
cmd.Update(&baseoptions.BaseUpdateOptions{})
|
||||
cmd.Delete(&options.DBInstanceDatabaseIdOptions{})
|
||||
cmd.Show(&options.DBInstanceDatabaseIdOptions{})
|
||||
cmd.Create(&options.DBInstanceDatabaseCreateOptions{})
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -41,46 +41,10 @@ import (
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.Disks)
|
||||
cmd.List(&compute_options.DiskListOptions{})
|
||||
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
|
||||
|
||||
type DiskListOptions struct {
|
||||
options.BaseListOptions
|
||||
Unused *bool `help:"Show unused disks"`
|
||||
Share *bool `help:"Show Share storage disks"`
|
||||
Local *bool `help:"Show Local storage disks"`
|
||||
Guest string `help:"Guest ID or name"`
|
||||
GuestStatus string `help:"Guest Status"`
|
||||
OrderByServer string `help:"Order By Server"`
|
||||
Storage string `help:"Storage ID or name"`
|
||||
Type string `help:"Disk type" choices:"sys|data|swap|volume"`
|
||||
CloudType string `help:"Public cloud or private cloud" choices:"Public|Private"`
|
||||
|
||||
OrderByGuestCount string `help:"Order By Guest Count"`
|
||||
|
||||
BillingType string `help:"billing type" choices:"postpaid|prepaid"`
|
||||
|
||||
SnapshotpolicyId string `help:"snapshotpolicy id"`
|
||||
}
|
||||
R(&DiskListOptions{}, "disk-list", "List virtual disks", func(s *mcclient.ClientSession, opts *DiskListOptions) error {
|
||||
params, err := options.ListStructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if len(opts.CloudType) > 0 {
|
||||
if opts.CloudType == "Public" {
|
||||
params.Add(jsonutils.JSONTrue, "public_cloud")
|
||||
} else if opts.CloudType == "Private" {
|
||||
params.Add(jsonutils.JSONTrue, "private_cloud")
|
||||
}
|
||||
}
|
||||
|
||||
result, err := modules.Disks.List(s, params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printList(result, modules.Disks.GetColumns(s))
|
||||
return nil
|
||||
})
|
||||
cmd.Perform("rebuild", &options.ResourceIdOptions{})
|
||||
cmd.Perform("migrate", &compute_options.DiskMigrateOptions{})
|
||||
|
||||
type DiskDetailOptions struct {
|
||||
ID string `help:"ID or Name of disk"`
|
||||
@@ -172,7 +136,7 @@ func init() {
|
||||
Desc string `help:"Description" metavar:"DESCRIPTION"`
|
||||
AutoDelete string `help:"enable/disable auto delete of disk" choices:"enable|disable"`
|
||||
AutoSnapshot string `help:"enable/disable auto snapshot of disk" choices:"enable|disable"`
|
||||
DiskType string `help:"Disk type" choices:"data|volume"`
|
||||
DiskType string `help:"Disk type" choices:"data|volume|sys"`
|
||||
IsSsd *bool `help:"mark disk as ssd" negative:"no-is-ssd"`
|
||||
}
|
||||
R(&DiskUpdateOptions{}, "disk-update", "Update property of a virtual disk", func(s *mcclient.ClientSession, args *DiskUpdateOptions) error {
|
||||
|
||||
@@ -22,6 +22,7 @@ import (
|
||||
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
@@ -32,6 +33,8 @@ func init() {
|
||||
cmd.ClassShow(&compute.DnsZoneCapabilitiesOptions{})
|
||||
cmd.Delete(&compute.SDnsZoneIdOptions{})
|
||||
cmd.Create(&compute.DnsZoneCreateOptions{})
|
||||
cmd.Perform("public", &options.BasePublicOptions{})
|
||||
cmd.Perform("private", &options.BaseIdOptions{})
|
||||
cmd.Perform("syncstatus", &compute.SDnsZoneIdOptions{})
|
||||
cmd.Perform("purge", &compute.SDnsZoneIdOptions{})
|
||||
cmd.Perform("add-vpcs", &compute.DnsZoneAddVpcsOptions{})
|
||||
|
||||
@@ -41,7 +41,7 @@ func init() {
|
||||
cmd.PerformWithKeyword("disable-auth", "update-auth-mode", &compute.ElasticCacheDisableAuthOptions{})
|
||||
|
||||
type ElasticCacheAccountResetPasswordOptions struct {
|
||||
options.ElasticCacheIdOptions
|
||||
compute.ElasticCacheIdOptions
|
||||
PASSWORD string `help:"elastic cache account password."`
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheAccountCreateOptions{}, "elastic-cache-account-create", "Create elastisc cache account", func(s *mcclient.ClientSession, opts *options.ElasticCacheAccountCreateOptions) error {
|
||||
R(&compute.ElasticCacheAccountCreateOptions{}, "elastic-cache-account-create", "Create elastisc cache account", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAccountCreateOptions) error {
|
||||
params, err := options.ListStructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -92,7 +92,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheIdOptions{}, "elastic-cache-account-delete", "Delete elastisc cache account", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
|
||||
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-account-delete", "Delete elastisc cache account", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
|
||||
result, err := modules.ElasticCacheAccount.Delete(s, opts.ID, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -102,7 +102,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheBackupCreateOptions{}, "elastic-cache-backup-create", "Create elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheBackupCreateOptions) error {
|
||||
R(&compute.ElasticCacheBackupCreateOptions{}, "elastic-cache-backup-create", "Create elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheBackupCreateOptions) error {
|
||||
params, err := options.ListStructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -132,7 +132,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheIdOptions{}, "elastic-cache-backup-delete", "Delete elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
|
||||
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-backup-delete", "Delete elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
|
||||
result, err := modules.ElasticCacheBackup.Delete(s, opts.ID, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -142,7 +142,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheIdOptions{}, "elastic-cache-backup-restore", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
|
||||
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-backup-restore", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
|
||||
result, err := modules.ElasticCacheBackup.PerformAction(s, opts.ID, "restore-instance", nil)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -152,7 +152,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheAclCreateOptions{}, "elastic-cache-acl-create", "Create elastisc cache acl", func(s *mcclient.ClientSession, opts *options.ElasticCacheAclCreateOptions) error {
|
||||
R(&compute.ElasticCacheAclCreateOptions{}, "elastic-cache-acl-create", "Create elastisc cache acl", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAclCreateOptions) error {
|
||||
params, err := options.ListStructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -167,7 +167,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheIdOptions{}, "elastic-cache-acl-delete", "Delete elastisc cache acl", func(s *mcclient.ClientSession, opts *options.ElasticCacheIdOptions) error {
|
||||
R(&compute.ElasticCacheIdOptions{}, "elastic-cache-acl-delete", "Delete elastisc cache acl", func(s *mcclient.ClientSession, opts *compute.ElasticCacheIdOptions) error {
|
||||
result, err := modules.ElasticCacheAcl.Delete(s, opts.ID, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -192,7 +192,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheAclUpdateOptions{}, "elastic-cache-acl-update", "Update elastisc cache acl", func(s *mcclient.ClientSession, opts *options.ElasticCacheAclUpdateOptions) error {
|
||||
R(&compute.ElasticCacheAclUpdateOptions{}, "elastic-cache-acl-update", "Update elastisc cache acl", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAclUpdateOptions) error {
|
||||
params, err := options.ListStructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -223,7 +223,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheParameterUpdateOptions{}, "elastic-cache-parameter-update", "Update elastisc cache parameter", func(s *mcclient.ClientSession, opts *options.ElasticCacheParameterUpdateOptions) error {
|
||||
R(&compute.ElasticCacheParameterUpdateOptions{}, "elastic-cache-parameter-update", "Update elastisc cache parameter", func(s *mcclient.ClientSession, opts *compute.ElasticCacheParameterUpdateOptions) error {
|
||||
params, err := options.ListStructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -293,7 +293,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheRemoteUpdateOptions{}, "elastic-cache-remote-update", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *options.ElasticCacheRemoteUpdateOptions) error {
|
||||
R(&compute.ElasticCacheRemoteUpdateOptions{}, "elastic-cache-remote-update", "Restore elastisc cache backup", func(s *mcclient.ClientSession, opts *compute.ElasticCacheRemoteUpdateOptions) error {
|
||||
params, err := options.StructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -307,7 +307,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheAutoRenewOptions{}, "elastic-cache-auto-renew", "Set elastisc cache auto renew", func(s *mcclient.ClientSession, opts *options.ElasticCacheAutoRenewOptions) error {
|
||||
R(&compute.ElasticCacheAutoRenewOptions{}, "elastic-cache-auto-renew", "Set elastisc cache auto renew", func(s *mcclient.ClientSession, opts *compute.ElasticCacheAutoRenewOptions) error {
|
||||
params, err := options.StructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -321,7 +321,7 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.ElasticCacheRenewOptions{}, "elastic-cache-renew", "Renew elastisc cache", func(s *mcclient.ClientSession, opts *options.ElasticCacheRenewOptions) error {
|
||||
R(&compute.ElasticCacheRenewOptions{}, "elastic-cache-renew", "Renew elastisc cache", func(s *mcclient.ClientSession, opts *compute.ElasticCacheRenewOptions) error {
|
||||
params, err := options.StructToParams(opts)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -37,7 +37,6 @@ import (
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.Hosts)
|
||||
cmd.List(&compute.HostListOptions{})
|
||||
cmd.Show(&options.BaseShowOptions{})
|
||||
cmd.GetMetadata(&options.BaseIdOptions{})
|
||||
cmd.GetProperty(&compute.HostStatusStatisticsOptions{})
|
||||
|
||||
@@ -54,6 +53,8 @@ func init() {
|
||||
cmd.Perform("probe-isolated-devices", &options.BaseIdOptions{})
|
||||
cmd.Perform("class-metadata", &options.ResourceMetadataOptions{})
|
||||
cmd.Perform("set-class-metadata", &options.ResourceMetadataOptions{})
|
||||
cmd.PerformClass("validate-ipmi", &compute.HostValidateIPMI{})
|
||||
cmd.Perform("set-commit-bound", &compute.HostSetCommitBoundOptions{})
|
||||
|
||||
cmd.BatchPerform("enable", &options.BaseIdsOptions{})
|
||||
cmd.BatchPerform("disable", &options.BaseIdsOptions{})
|
||||
@@ -88,6 +89,34 @@ func init() {
|
||||
}
|
||||
}, &options.BaseIdOptions{})
|
||||
|
||||
R(&compute.HostShowOptions{}, "host-show", "Show details of a host", func(s *mcclient.ClientSession, args *compute.HostShowOptions) error {
|
||||
params, err := args.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
result, err := modules.Hosts.Get(s, args.ID, params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
resultDict := result.(*jsonutils.JSONDict)
|
||||
if !args.ShowAll {
|
||||
if !args.ShowMetadata {
|
||||
print("ShowMetadata\n")
|
||||
resultDict.Remove("metadata")
|
||||
}
|
||||
if !args.ShowNicInfo {
|
||||
print("ShowMetadata\n")
|
||||
resultDict.Remove("nic_info")
|
||||
}
|
||||
if !args.ShowSysInfo {
|
||||
print("ShowSysInfo\n")
|
||||
resultDict.Remove("sys_info")
|
||||
}
|
||||
}
|
||||
printObject(resultDict)
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&options.BaseIdOptions{}, "host-logininfo", "Get SSH login information of a host", func(s *mcclient.ClientSession, args *options.BaseIdOptions) error {
|
||||
i, e := modules.Hosts.PerformAction(s, args.ID, "login-info", nil)
|
||||
if e != nil {
|
||||
@@ -173,14 +202,12 @@ func init() {
|
||||
})
|
||||
|
||||
type HostUpdateOptions struct {
|
||||
ID string `help:"ID or Name of Host"`
|
||||
Name string `help:"New name of the host"`
|
||||
Desc string `help:"New Description of the host"`
|
||||
CpuCommitBound float64 `help:"CPU overcommit upper bound at this host"`
|
||||
MemoryCommitBound float64 `help:"Memory overcommit upper bound at this host"`
|
||||
MemoryReserved string `help:"Memory reserved"`
|
||||
CpuReserved int64 `help:"CPU reserved"`
|
||||
HostType string `help:"Change host type, CAUTION!!!!" choices:"hypervisor|kubelet|esxi|baremetal"`
|
||||
ID string `help:"ID or Name of Host"`
|
||||
Name string `help:"New name of the host"`
|
||||
Desc string `help:"New Description of the host"`
|
||||
MemoryReserved string `help:"Memory reserved"`
|
||||
CpuReserved int64 `help:"CPU reserved"`
|
||||
HostType string `help:"Change host type, CAUTION!!!!" choices:"hypervisor|kubelet|esxi|baremetal"`
|
||||
// AccessIp string `help:"Change access ip, CAUTION!!!!"`
|
||||
AccessMac string `help:"Change baremetal access MAC, CAUTION!!!!"`
|
||||
Uuid string `help:"Change baremetal UUID, CAUTION!!!!"`
|
||||
@@ -202,12 +229,6 @@ func init() {
|
||||
if len(args.Desc) > 0 {
|
||||
params.Add(jsonutils.NewString(args.Desc), "description")
|
||||
}
|
||||
if args.CpuCommitBound > 0.0 {
|
||||
params.Add(jsonutils.NewFloat64(args.CpuCommitBound), "cpu_cmtbound")
|
||||
}
|
||||
if args.MemoryCommitBound > 0.0 {
|
||||
params.Add(jsonutils.NewFloat64(args.MemoryCommitBound), "mem_cmtbound")
|
||||
}
|
||||
if len(args.MemoryReserved) > 0 {
|
||||
params.Add(jsonutils.NewString(args.MemoryReserved), "mem_reserved")
|
||||
}
|
||||
@@ -601,7 +622,7 @@ func init() {
|
||||
i, e := modules.Hosts.PerformAction(s, args.ID, "login-info", nil)
|
||||
privateKey := ""
|
||||
if e != nil {
|
||||
if httputils.ErrorCode(e) == 404 || e.Error() == "ciphertext too short" {
|
||||
if httputils.ErrorCode(e) == 404 || strings.Contains(e.Error(), "ciphertext too short") {
|
||||
var err error
|
||||
privateKey, err = modules.Sshkeypairs.FetchPrivateKeyBySession(context.Background(), s)
|
||||
if err != nil {
|
||||
|
||||
@@ -15,8 +15,13 @@
|
||||
package compute
|
||||
|
||||
import (
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/util/printutils"
|
||||
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
@@ -28,4 +33,69 @@ func init() {
|
||||
cmd.Delete(new(options.IsolatedDeviceIdsOptions))
|
||||
cmd.Perform("set-hardware-info", new(options.IsolatedDeviceModelSetHardwareInfoOptions))
|
||||
cmd.Get("hardware-info", new(options.IsolatedDeviceIdsOptions))
|
||||
|
||||
type HostIsolatedDeviceModelListOptions struct {
|
||||
baseoptions.BaseListOptions
|
||||
Host string `help:"ID or Name of Host"`
|
||||
IsolatedDeviceModel string `help:"ID or Name of Isolated device model"`
|
||||
}
|
||||
R(&HostIsolatedDeviceModelListOptions{}, "host-isolated-device-model-list",
|
||||
"List host Isolated device model pairs", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelListOptions) error {
|
||||
var params *jsonutils.JSONDict
|
||||
{
|
||||
var err error
|
||||
params, err = args.BaseListOptions.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
}
|
||||
}
|
||||
var result *printutils.ListResult
|
||||
var err error
|
||||
if len(args.Host) > 0 {
|
||||
result, err = modules.HostIsolatedDeviceModels.ListDescendent(s, args.Host, params)
|
||||
} else if len(args.IsolatedDeviceModel) > 0 {
|
||||
result, err = modules.HostIsolatedDeviceModels.ListDescendent2(s, args.IsolatedDeviceModel, params)
|
||||
} else {
|
||||
result, err = modules.HostIsolatedDeviceModels.List(s, params)
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printList(result, modules.HostIsolatedDeviceModels.GetColumns(s))
|
||||
return nil
|
||||
})
|
||||
|
||||
type HostIsolatedDeviceModelDetailOptions struct {
|
||||
HOST string `help:"ID or Name of Host"`
|
||||
IsolatedDeviceModel string `help:"ID or Name of Isolated device model"`
|
||||
}
|
||||
R(&HostIsolatedDeviceModelDetailOptions{}, "host-isolated-device-model-show", "Show host isolated-device-model details", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelDetailOptions) error {
|
||||
result, err := modules.HostIsolatedDeviceModels.Get(s, args.HOST, args.IsolatedDeviceModel, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&HostIsolatedDeviceModelDetailOptions{}, "host-isolated-device-model-detach", "Detach a isolated-device-model from a host", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelDetailOptions) error {
|
||||
result, err := modules.HostIsolatedDeviceModels.Detach(s, args.HOST, args.IsolatedDeviceModel, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
R(&HostIsolatedDeviceModelDetailOptions{}, "host-isolated-device-model-attach", "Attach a isolated-device-model to a host", func(s *mcclient.ClientSession, args *HostIsolatedDeviceModelDetailOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
result, err := modules.HostIsolatedDeviceModels.Attach(s, args.HOST, args.IsolatedDeviceModel, params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -15,90 +15,15 @@
|
||||
package compute
|
||||
|
||||
import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
type DeviceListOptions struct {
|
||||
options.BaseListOptions
|
||||
Unused bool `help:"Only show unused devices"`
|
||||
Gpu bool `help:"Only show gpu devices"`
|
||||
Host string `help:"Host ID or Name"`
|
||||
Region string `help:"Cloudregion ID or Name"`
|
||||
Zone string `help:"Zone ID or Name"`
|
||||
Server string `help:"Server ID or Name"`
|
||||
}
|
||||
R(&DeviceListOptions{}, "isolated-device-list", "List isolated devices like GPU", func(s *mcclient.ClientSession, args *DeviceListOptions) error {
|
||||
var params *jsonutils.JSONDict
|
||||
{
|
||||
var err error
|
||||
params, err = args.BaseListOptions.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
}
|
||||
}
|
||||
if len(args.Host) > 0 {
|
||||
params.Add(jsonutils.NewString(args.Host), "host")
|
||||
}
|
||||
if args.Unused {
|
||||
params.Add(jsonutils.JSONTrue, "unused")
|
||||
}
|
||||
if args.Gpu {
|
||||
params.Add(jsonutils.JSONTrue, "gpu")
|
||||
}
|
||||
if len(args.Region) > 0 {
|
||||
params.Add(jsonutils.NewString(args.Region), "region")
|
||||
}
|
||||
if args.Zone != "" {
|
||||
params.Add(jsonutils.NewString(args.Zone), "zone")
|
||||
}
|
||||
if args.Server != "" {
|
||||
params.Add(jsonutils.NewString(args.Server), "guest_id")
|
||||
}
|
||||
result, err := modules.IsolatedDevices.List(s, params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printList(result, modules.IsolatedDevices.GetColumns(s))
|
||||
return nil
|
||||
})
|
||||
|
||||
type DeviceShowOptions struct {
|
||||
ID string `help:"ID of the isolated device"`
|
||||
}
|
||||
R(&DeviceShowOptions{}, "isolated-device-show", "Show isolated device details", func(s *mcclient.ClientSession, args *DeviceShowOptions) error {
|
||||
result, err := modules.IsolatedDevices.Get(s, args.ID, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
type DeviceDeleteOptions struct {
|
||||
IDS []string `help:"IDs of the isolated device"`
|
||||
}
|
||||
R(&DeviceDeleteOptions{}, "isolated-device-delete", "Delete a isolated device", func(s *mcclient.ClientSession, args *DeviceDeleteOptions) error {
|
||||
result := modules.IsolatedDevices.BatchDelete(s, args.IDS, nil)
|
||||
printBatchResults(result, modules.IsolatedDevices.GetColumns(s))
|
||||
return nil
|
||||
})
|
||||
|
||||
type DeviceUpdateOptions struct {
|
||||
ID []string `help:"ID of the isolated device" json:"-"`
|
||||
ReservedCpu *int `help:"reserved cpu for isolated device"`
|
||||
ReservedMem *int `help:"reserved mem for isolated device"`
|
||||
ReservedStorage *int `help:"reserved storage for isolated device"`
|
||||
DevType string `help:"Device type" choices:"GPU-HPC|GPU-VGA"`
|
||||
}
|
||||
R(&DeviceUpdateOptions{}, "isolated-device-update", "Update a isolated device", func(s *mcclient.ClientSession, args *DeviceUpdateOptions) error {
|
||||
res := modules.IsolatedDevices.BatchUpdate(s, args.ID, jsonutils.Marshal(args))
|
||||
printBatchResults(res, modules.IsolatedDevices.GetColumns(s))
|
||||
return nil
|
||||
})
|
||||
cmd := shell.NewResourceCmd(&modules.IsolatedDevices)
|
||||
cmd.List(&compute.DeviceListOptions{})
|
||||
cmd.Update(&compute.DeviceUpdateOptions{})
|
||||
cmd.Show(&compute.DeviceShowOptions{})
|
||||
cmd.BatchDelete(&compute.DeviceDeleteOptions{})
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -26,6 +26,7 @@ import (
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
compute_options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
"yunion.io/x/onecloud/pkg/util/netutils2"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -240,4 +241,21 @@ func init() {
|
||||
printObject(net)
|
||||
return nil
|
||||
})
|
||||
type NetworkInterfaceInfoOptions struct {
|
||||
DEV string `help:"name of device, e.g. eth0"`
|
||||
}
|
||||
R(&NetworkInterfaceInfoOptions{}, "network-interface-info", "Show addr and routes of interface", func(s *mcclient.ClientSession, args *NetworkInterfaceInfoOptions) error {
|
||||
netIf := netutils2.NewNetInterface(args.DEV)
|
||||
|
||||
fmt.Println("[Slave Addresses]")
|
||||
for _, addr := range netIf.GetSlaveAddresses() {
|
||||
fmt.Printf("%s/%s\n", addr[0], addr[1])
|
||||
}
|
||||
fmt.Println("[Routes]")
|
||||
for _, r := range netIf.GetRouteSpecs() {
|
||||
fmt.Printf("%s via %s dev %d\n", r.Dst.String(), r.Gw.String(), r.LinkIndex)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modulebase"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
type schedtagModelHelper struct {
|
||||
|
||||
@@ -17,7 +17,8 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -29,6 +30,6 @@ func init() {
|
||||
cmd.Create(new(options.SchedtagCreateOptions))
|
||||
cmd.Update(new(options.SchedtagUpdateOptions))
|
||||
cmd.BatchPerform("set-scope", new(options.SchedtagSetScopeOptions))
|
||||
cmd.PerformWithKeyword("set-user-metadata", "user-metadata", new(options.ResourceMetadataOptions))
|
||||
cmd.PerformWithKeyword("set-user-metadata", "user-metadata", new(baseoptions.ResourceMetadataOptions))
|
||||
cmd.Perform("set-resource", new(options.SchedtagSetResource))
|
||||
}
|
||||
|
||||
@@ -17,7 +17,8 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -25,7 +26,7 @@ func init() {
|
||||
cmd.List(&options.SecgroupListOptions{})
|
||||
cmd.Create(&options.SecgroupCreateOptions{})
|
||||
cmd.Show(&options.SecgroupIdOptions{})
|
||||
cmd.Update(&options.BaseUpdateOptions{})
|
||||
cmd.Update(&baseoptions.BaseUpdateOptions{})
|
||||
cmd.Delete(&options.SecgroupIdOptions{})
|
||||
cmd.Perform("public", &options.SecgroupIdOptions{})
|
||||
cmd.Perform("syncstatus", &options.SecgroupIdOptions{})
|
||||
@@ -33,4 +34,5 @@ func init() {
|
||||
cmd.Perform("add-rule", &options.SecgroupsAddRuleOptions{})
|
||||
cmd.Perform("change-owner", &options.SecgroupChangeOwnerOptions{})
|
||||
cmd.Perform("import-rules", &options.SecgroupImportRulesOptions{})
|
||||
cmd.PerformClass("clean", &options.SecgroupCleanOptions{})
|
||||
}
|
||||
|
||||
@@ -94,6 +94,7 @@ func init() {
|
||||
Driver string `help:"Driver model of vNIC" choices:"virtio|e1000|vmxnet3|rtl8139"`
|
||||
Index int64 `help:"Index of NIC" default:"-1"`
|
||||
Ifname string `help:"Interface name of vNIC on host"`
|
||||
Default bool `help:"is default nic?"`
|
||||
}
|
||||
R(&ServerNetworkUpdateOptions{}, "server-network-update", "Update server network settings", func(s *mcclient.ClientSession, args *ServerNetworkUpdateOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
@@ -106,6 +107,9 @@ func init() {
|
||||
if len(args.Ifname) > 0 {
|
||||
params.Add(jsonutils.NewString(args.Ifname), "ifname")
|
||||
}
|
||||
if args.Default {
|
||||
params.Add(jsonutils.JSONTrue, "is_default")
|
||||
}
|
||||
if params.Size() == 0 {
|
||||
return InvalidUpdateError()
|
||||
}
|
||||
@@ -176,6 +180,7 @@ func init() {
|
||||
SERVER string `help:"ID or Name of server"`
|
||||
MACORIP string `help:"Mac Or IP of NIC"`
|
||||
Reserve bool `help:"Put the release IP address into reserved address pool"`
|
||||
Force bool `help:"detach server network by force"`
|
||||
}
|
||||
R(&ServerDetachNetworkOptions{}, "server-detach-network", "Detach the virtual network fron a virtual server", func(s *mcclient.ClientSession, args *ServerDetachNetworkOptions) error {
|
||||
params := jsonutils.NewDict()
|
||||
@@ -183,6 +188,9 @@ func init() {
|
||||
if args.Reserve {
|
||||
params.Add(jsonutils.JSONTrue, "reserve")
|
||||
}
|
||||
if args.Force {
|
||||
params.Add(jsonutils.JSONTrue, "force")
|
||||
}
|
||||
if regutils.MatchMacAddr(args.MACORIP) {
|
||||
params.Add(jsonutils.NewString(args.MACORIP), "mac")
|
||||
} else if regutils.MatchIP4Addr(args.MACORIP) {
|
||||
|
||||
@@ -122,10 +122,12 @@ func init() {
|
||||
cmd.Perform("reset-nic-traffic-limit", &options.ServerNicTrafficLimitOptions{})
|
||||
cmd.Perform("set-nic-traffic-limit", &options.ServerNicTrafficLimitOptions{})
|
||||
cmd.Perform("add-sub-ips", &options.ServerAddSubIpsOptions{})
|
||||
cmd.Perform("update-sub-ips", &options.ServerUpdateSubIpsOptions{})
|
||||
cmd.BatchPerform("set-os-info", &options.ServerSetOSInfoOptions{})
|
||||
cmd.BatchPerform("start-rescue", &options.ServerStartOptions{})
|
||||
cmd.BatchPerform("stop-rescue", &options.ServerStartOptions{})
|
||||
cmd.BatchPerform("sync-os-info", &options.ServerIdsOptions{})
|
||||
cmd.BatchPerform("set-root-disk-matcher", &options.ServerSetRootDiskMatcher{})
|
||||
|
||||
cmd.Get("vnc", new(options.ServerVncOptions))
|
||||
cmd.Get("desc", new(options.ServerIdOptions))
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -32,6 +32,7 @@ func init() {
|
||||
Share *bool `help:"Show shared snapshots"`
|
||||
DiskType string `help:"Filter by disk type" choices:"sys|data"`
|
||||
Server string `help:"Filter by server" json:"server_id"`
|
||||
Unused bool
|
||||
|
||||
OrderByGuest string
|
||||
OrderByDiskName string
|
||||
|
||||
@@ -18,12 +18,11 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/errors"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/hostman/guestfs/fsdriver"
|
||||
deployapi "yunion.io/x/onecloud/pkg/hostman/hostdeployer/apis"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/util/procutils"
|
||||
@@ -101,8 +100,44 @@ func init() {
|
||||
}
|
||||
oldKeys = string(output)
|
||||
}
|
||||
pubKeys := &deployapi.SSHKeys{AdminPublicKey: pubKey}
|
||||
newKeys := fsdriver.MergeAuthorizedKeys(oldKeys, pubKeys, true)
|
||||
var MergeAuthorizedKeys = func(oldKeys string, pubKey string) string {
|
||||
const sshKeySignature = "@yunioncloudpods"
|
||||
var allkeys = make(map[string]string)
|
||||
if len(oldKeys) > 0 {
|
||||
for _, line := range strings.Split(oldKeys, "\n") {
|
||||
line = strings.TrimSpace(line)
|
||||
dat := strings.Split(line, " ")
|
||||
if len(dat) > 1 {
|
||||
if len(dat) > 2 && dat[2] == sshKeySignature {
|
||||
// skip ssh keys with signature
|
||||
continue
|
||||
}
|
||||
if _, ok := allkeys[dat[1]]; !ok {
|
||||
allkeys[dat[1]] = line
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
candiateKeys := []string{pubKey}
|
||||
for _, k := range candiateKeys {
|
||||
if len(k) > 0 {
|
||||
k = strings.TrimSpace(k)
|
||||
dat := strings.Split(k, " ")
|
||||
if len(dat) > 1 {
|
||||
if _, ok := allkeys[dat[1]]; !ok {
|
||||
allkeys[dat[1]] = strings.Join([]string{dat[0], dat[1], sshKeySignature}, " ")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var keys = make([]string, 0)
|
||||
for _, val := range allkeys {
|
||||
keys = append(keys, val)
|
||||
}
|
||||
return strings.Join(keys, "\n") + "\n"
|
||||
}
|
||||
|
||||
newKeys := MergeAuthorizedKeys(oldKeys, pubKey)
|
||||
if output, err := procutils.NewCommand(
|
||||
"sh", "-c", fmt.Sprintf("echo '%s' > %s", newKeys, authFile)).Output(); err != nil {
|
||||
return errors.Wrapf(err, "write public keys: %s", output)
|
||||
|
||||
@@ -47,6 +47,7 @@ func init() {
|
||||
cmd.Perform("private", &options.BaseIdOptions{})
|
||||
cmd.Get("hardware-info", &options.BaseIdOptions{})
|
||||
cmd.Perform("set-hardware-info", &compute.StorageSetHardwareInfoOptions{})
|
||||
cmd.Perform("set-commit-bound", &compute.StorageSetCommitBoundOptions{})
|
||||
|
||||
type StorageCephRunOptions struct {
|
||||
ID string `help:"ID or name of ceph storage"`
|
||||
@@ -60,9 +61,10 @@ func init() {
|
||||
info := struct {
|
||||
StorageType string `json:"storage_type"`
|
||||
StorageConf struct {
|
||||
Key string `json:"key"`
|
||||
MonHost string `json:"mon_host"`
|
||||
Pool string `json:"pool"`
|
||||
Key string `json:"key"`
|
||||
MonHost string `json:"mon_host"`
|
||||
Pool string `json:"pool"`
|
||||
EnableMessengerV2 bool `json:"enable_messenger_v2"`
|
||||
}
|
||||
}{}
|
||||
err = result.Unmarshal(&info)
|
||||
@@ -76,6 +78,7 @@ func init() {
|
||||
info.StorageConf.MonHost,
|
||||
info.StorageConf.Key,
|
||||
info.StorageConf.Pool,
|
||||
info.StorageConf.EnableMessengerV2,
|
||||
)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "cephutils.NewClient")
|
||||
|
||||
@@ -33,7 +33,7 @@ import (
|
||||
type GeneralUsageOptions struct {
|
||||
HostType []string `help:"Host types" choices:"hypervisor|baremetal|esxi|xen|kubelet|hyperv|aliyun|azure|aws|huawei|qcloud|openstack|ucloud|zstack|google|ctyun"`
|
||||
Provider []string `help:"Provider" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun"`
|
||||
Brand []string `help:"Brands" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|DStack|Google|Ctyun"`
|
||||
Brand []string `help:"Brands" choices:"OneCloud|VMware|Aliyun|Azure|Aws|Qcloud|Huawei|OpenStack|Ucloud|VolcEngine|ZStack|Google|Ctyun"`
|
||||
Project string `help:"show usage of specified project"`
|
||||
|
||||
ProjectDomain string `help:"show usage of specified domain"`
|
||||
|
||||
@@ -17,7 +17,7 @@ package compute
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
||||
@@ -18,7 +18,8 @@ import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
baseoptions "yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -33,12 +34,12 @@ func init() {
|
||||
cmd.Perform("sync", &options.VpcIdOptions{})
|
||||
cmd.Perform("syncstatus", &options.VpcIdOptions{})
|
||||
cmd.Perform("private", &options.VpcIdOptions{})
|
||||
cmd.Perform("public", &options.BasePublicOptions{})
|
||||
cmd.Perform("public", &baseoptions.BasePublicOptions{})
|
||||
cmd.Perform("change-owner", &options.VpcChangeOwnerOptions{})
|
||||
cmd.Get("vpc-change-owner-candidate-domains", &options.VpcIdOptions{})
|
||||
cmd.Get("topology", &options.VpcIdOptions{})
|
||||
|
||||
R(&options.ResourceMetadataOptions{}, "vpc-set-user-metadata", "Set metadata of a vpc", func(s *mcclient.ClientSession, opts *options.ResourceMetadataOptions) error {
|
||||
R(&baseoptions.ResourceMetadataOptions{}, "vpc-set-user-metadata", "Set metadata of a vpc", func(s *mcclient.ClientSession, opts *baseoptions.ResourceMetadataOptions) error {
|
||||
params, err := opts.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
|
||||
func init() {
|
||||
type WorkerListOptions struct {
|
||||
ServiceType string `choices:"image|cloudid|cloudevent|devtool|ansible|identity|notify|log|compute|compute_v2"`
|
||||
ServiceType string `choices:"image|cloudid|cloudevent|devtool|ansible|identity|notify|log|compute|compute_v2|meter|suggestion|cloudmon|cloudproxy|dns|monitor|scheduler|vpcagent|webconsole|yunionconf|bastionhost|extdb|yunionapi"`
|
||||
}
|
||||
R(&WorkerListOptions{}, "worker-list", "List workers", func(s *mcclient.ClientSession, args *WorkerListOptions) error {
|
||||
result, err := modules.Workers.List(s, jsonutils.Marshal(args))
|
||||
|
||||
@@ -667,15 +667,15 @@ func (cmd JointCmd) List(args IJointListOpt) {
|
||||
cmd.RunWithDesc("list", fmt.Sprintf("list %s %s pairs", man.MasterManager().KeyString(), man.SlaveManager().KeyString()), args, callback)
|
||||
}
|
||||
|
||||
type IJointShowOpt interface {
|
||||
type IJointOpt interface {
|
||||
IOpt
|
||||
GetMasterId() string
|
||||
GetSlaveId() string
|
||||
}
|
||||
|
||||
func (cmd JointCmd) Show(args IJointShowOpt) {
|
||||
func (cmd JointCmd) Show(args IJointOpt) {
|
||||
man := cmd.manager.(modulebase.JointManager)
|
||||
callback := func(s *mcclient.ClientSession, args IJointShowOpt) error {
|
||||
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
|
||||
params, err := args.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -689,3 +689,54 @@ func (cmd JointCmd) Show(args IJointShowOpt) {
|
||||
}
|
||||
cmd.Run("show", args, callback)
|
||||
}
|
||||
|
||||
func (cmd JointCmd) Attach(args IJointOpt) {
|
||||
man := cmd.manager.(modulebase.JointManager)
|
||||
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
|
||||
params, err := args.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
result, err := man.Attach(s, args.GetMasterId(), args.GetSlaveId(), params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
PrintObject(result)
|
||||
return nil
|
||||
}
|
||||
cmd.Run("attach", args, callback)
|
||||
}
|
||||
|
||||
func (cmd JointCmd) Detach(args IJointOpt) {
|
||||
man := cmd.manager.(modulebase.JointManager)
|
||||
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
|
||||
params, err := args.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
result, err := man.Detach(s, args.GetMasterId(), args.GetSlaveId(), params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
PrintObject(result)
|
||||
return nil
|
||||
}
|
||||
cmd.Run("detach", args, callback)
|
||||
}
|
||||
|
||||
func (cmd JointCmd) Update(args IJointOpt) {
|
||||
man := cmd.manager.(modulebase.JointManager)
|
||||
callback := func(s *mcclient.ClientSession, args IJointOpt) error {
|
||||
params, err := args.Params()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
result, err := man.Update(s, args.GetMasterId(), args.GetSlaveId(), nil, params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
PrintObject(result)
|
||||
return nil
|
||||
}
|
||||
cmd.Run("update", args, callback)
|
||||
}
|
||||
|
||||
@@ -388,16 +388,18 @@ func init() {
|
||||
})
|
||||
|
||||
type ProjectAddUserGroupOptions struct {
|
||||
Project string `help:"ID or name of project to add users/groups" positional:"true" optional:"false"`
|
||||
User []string `help:"ID of user to add"`
|
||||
Group []string `help:"ID of group to add"`
|
||||
Role []string `help:"ID of role to add"`
|
||||
Project string `help:"ID or name of project to add users/groups" positional:"true" optional:"false"`
|
||||
User []string `help:"ID of user to add"`
|
||||
Group []string `help:"ID of group to add"`
|
||||
Role []string `help:"ID of role to add"`
|
||||
EnableAllUsers bool
|
||||
}
|
||||
R(&ProjectAddUserGroupOptions{}, "project-add-user-group", "Batch add users/groups to project", func(s *mcclient.ClientSession, args *ProjectAddUserGroupOptions) error {
|
||||
input := api.SProjectAddUserGroupInput{}
|
||||
input.Users = args.User
|
||||
input.Groups = args.Group
|
||||
input.Roles = args.Role
|
||||
input.EnableAllUsers = args.EnableAllUsers
|
||||
err := input.Validate()
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -413,15 +413,32 @@ func init() {
|
||||
return nil
|
||||
})
|
||||
|
||||
type UserGroupsOptions struct {
|
||||
USER string `help:"User ID or Name"`
|
||||
Gids []string `help:"group ID or Name"`
|
||||
Action string `default:"join" choices:"join|leave"`
|
||||
Enabled bool
|
||||
}
|
||||
|
||||
R(&UserGroupsOptions{}, "user-join-groups", "Add a user to groups", func(s *mcclient.ClientSession, args *UserGroupsOptions) error {
|
||||
_, err := modules.UsersV3.DoJoinGroups(s, args.USER, jsonutils.Marshal(args))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
type UserJoinProjectOptions struct {
|
||||
User string `help:"User Id or name" optional:"false" positional:"true"`
|
||||
Project []string `help:"Projects to join" nargs:"+"`
|
||||
Role []string `help:"User join project with roles" nargs:"+"`
|
||||
Enabled bool
|
||||
}
|
||||
R(&UserJoinProjectOptions{}, "user-join-project", "User join projects with roles", func(s *mcclient.ClientSession, args *UserJoinProjectOptions) error {
|
||||
input := api.SJoinProjectsInput{}
|
||||
input.Projects = args.Project
|
||||
input.Roles = args.Role
|
||||
input.Enabled = args.Enabled
|
||||
result, err := modules.UsersV3.PerformAction(s, args.User, "join", jsonutils.Marshal(input))
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
@@ -37,6 +37,8 @@ func initContainerRegistry() {
|
||||
cmd.Create(new(o.RegistryCreateOptions))
|
||||
cmd.Get("images", new(o.RegistryGetImagesOptions))
|
||||
cmd.Get("image-tags", new(o.RegistryGetImageTagsOptions))
|
||||
cmd.BatchPerform("public", new(o.RegistryPublicOptions))
|
||||
cmd.Perform("private", new(o.RegistryGetOptions))
|
||||
|
||||
type UploadOptions struct {
|
||||
REGISTRY string `help:"The name or id of registry" json:"-"`
|
||||
|
||||
@@ -50,4 +50,28 @@ func init() {
|
||||
fmt.Println(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
type DistinctFieldsOption struct {
|
||||
MODULE string `help:"module name"`
|
||||
Field []string `help:"distinct field name to query"`
|
||||
ExtraField []string `help:"distinct field name to query"`
|
||||
ExtraResource string
|
||||
}
|
||||
R(&DistinctFieldsOption{}, "distinct-fields", "Query values of a distinct fields for a module", func(s *mcclient.ClientSession, args *DistinctFieldsOption) error {
|
||||
mod, err := modulebase.GetModule(s, args.MODULE)
|
||||
if err != nil || mod == nil {
|
||||
if err != nil {
|
||||
return fmt.Errorf("module %s not found %s", args.MODULE, err)
|
||||
}
|
||||
return fmt.Errorf("No module %s found", args.MODULE)
|
||||
}
|
||||
params := jsonutils.Marshal(args)
|
||||
result, err := mod.Get(s, "distinct-fields", params)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Println(result)
|
||||
return nil
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -19,13 +19,50 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/pkg/util/sets"
|
||||
"yunion.io/x/pkg/utils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules/yunionconf"
|
||||
)
|
||||
|
||||
type GlobalSettingsValue struct {
|
||||
SetupKeys []string `json:"setupKeys"`
|
||||
SetupKeysVersion string `json:"setupKeysVersion"`
|
||||
SetupOneStackInitialized bool `json:"setupOneStackInitialized"`
|
||||
ProductVersion string `json:"productVersion"`
|
||||
UserDefinedKeys map[string]bool `json:"userDefinedKeys"`
|
||||
}
|
||||
|
||||
func NewGlobalSettingsValue(setupKeys []string, setupOneStack bool) *GlobalSettingsValue {
|
||||
settings := &GlobalSettingsValue{
|
||||
SetupOneStackInitialized: setupOneStack,
|
||||
UserDefinedKeys: make(map[string]bool),
|
||||
}
|
||||
for _, key := range setupKeys {
|
||||
settings.Switch(key, true)
|
||||
}
|
||||
return settings
|
||||
}
|
||||
|
||||
func (g *GlobalSettingsValue) Switch(featureKey string, on bool) {
|
||||
if g.UserDefinedKeys == nil {
|
||||
g.UserDefinedKeys = map[string]bool{}
|
||||
}
|
||||
g.UserDefinedKeys[featureKey] = on
|
||||
ss := sets.NewString(g.SetupKeys...)
|
||||
if on {
|
||||
ss.Insert(featureKey)
|
||||
} else {
|
||||
ss.Delete(featureKey)
|
||||
}
|
||||
g.SetupKeys = ss.List()
|
||||
}
|
||||
|
||||
func init() {
|
||||
var storageFeatures = []string{
|
||||
"s3", "xsky", "ceph",
|
||||
}
|
||||
var features = []string{
|
||||
"onestack",
|
||||
"baremetal",
|
||||
@@ -48,9 +85,6 @@ func init() {
|
||||
"cloudpods",
|
||||
"hcso",
|
||||
"nutanix",
|
||||
"s3",
|
||||
"ceph",
|
||||
"xsky",
|
||||
"bill",
|
||||
"auth",
|
||||
"onecloud",
|
||||
@@ -67,9 +101,13 @@ func init() {
|
||||
"cucloud",
|
||||
"qingcloud",
|
||||
"volcengine",
|
||||
"oracle",
|
||||
"oraclecloud",
|
||||
"sangfor",
|
||||
"cephfs",
|
||||
}
|
||||
|
||||
features = append(features, storageFeatures...)
|
||||
|
||||
const (
|
||||
GlobalSettings = "global-settings"
|
||||
SystemScope = "system"
|
||||
@@ -96,13 +134,14 @@ func init() {
|
||||
if len(items.Data) == 0 {
|
||||
// create it if enabled
|
||||
if enable {
|
||||
value := []string{name}
|
||||
if utils.IsInStringArray(name, storageFeatures) {
|
||||
value = append(value, "storage")
|
||||
}
|
||||
input := map[string]interface{}{
|
||||
"name": GlobalSettings,
|
||||
"service_id": YunionAgent,
|
||||
"value": map[string]interface{}{
|
||||
"setupKeys": []string{name},
|
||||
"setupOneStackInitialized": true,
|
||||
},
|
||||
"value": NewGlobalSettingsValue(value, true),
|
||||
}
|
||||
params := jsonutils.Marshal(input)
|
||||
if _, err := yunionconf.Parameters.Create(s, params); err != nil {
|
||||
@@ -124,33 +163,23 @@ func init() {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "get value")
|
||||
}
|
||||
setupKeys := []string{}
|
||||
if value.Contains("setupKeys") {
|
||||
if err := value.Unmarshal(&setupKeys, "setupKeys"); err != nil {
|
||||
return errors.Wrap(err, "unmarshal setupKeys")
|
||||
}
|
||||
curConf := new(GlobalSettingsValue)
|
||||
if err := value.Unmarshal(curConf); err != nil {
|
||||
return errors.Wrapf(err, "unmarshal to GlobalSettingsValue: %s", value)
|
||||
}
|
||||
if !enable {
|
||||
if utils.IsInStringArray(name, setupKeys) {
|
||||
newKeys := []string{}
|
||||
for _, key := range setupKeys {
|
||||
if key != name {
|
||||
newKeys = append(newKeys, key)
|
||||
}
|
||||
}
|
||||
setupKeys = newKeys
|
||||
}
|
||||
} else if enable {
|
||||
if !utils.IsInStringArray(name, setupKeys) {
|
||||
setupKeys = append(setupKeys, name)
|
||||
curConf.Switch(name, false)
|
||||
} else {
|
||||
curConf.Switch(name, true)
|
||||
if utils.IsInStringArray(name, storageFeatures) {
|
||||
curConf.Switch("storage", true)
|
||||
}
|
||||
}
|
||||
value.(*jsonutils.JSONDict).Set("setupKeys", jsonutils.Marshal(setupKeys))
|
||||
id, err := ss.GetString("id")
|
||||
if err != nil {
|
||||
return errors.Errorf("get id from %s", ss)
|
||||
}
|
||||
ss.(*jsonutils.JSONDict).Set("value", value)
|
||||
ss.(*jsonutils.JSONDict).Set("value", jsonutils.Marshal(curConf))
|
||||
obj, err := yunionconf.Parameters.Update(s, id, ss)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "update %s(%s)", GlobalSettings, id)
|
||||
|
||||
@@ -23,11 +23,11 @@ import (
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/pkg/util/netutils"
|
||||
"yunion.io/x/pkg/util/signalutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules"
|
||||
"yunion.io/x/onecloud/pkg/util/netutils2"
|
||||
"yunion.io/x/onecloud/pkg/util/procutils"
|
||||
)
|
||||
|
||||
@@ -125,7 +125,7 @@ func init() {
|
||||
} {
|
||||
pType := kind
|
||||
R(&TraceOptions{}, fmt.Sprintf("pprof-%s", pType), fmt.Sprintf("pprof %s of backend service", pType), func(s *mcclient.ClientSession, args *TraceOptions) error {
|
||||
port, err := netutils2.GetFreePort()
|
||||
port, err := netutils.GetFreePort()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
package monitor
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/pkg/errors"
|
||||
@@ -46,11 +45,7 @@ func init() {
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "DoTestRun")
|
||||
}
|
||||
jsonBytes, err := json.MarshalIndent(ret, "", " ")
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "MarshalIndent")
|
||||
}
|
||||
fmt.Printf("%s\n", jsonBytes)
|
||||
fmt.Printf("%s\n", ret.PrettyString())
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
@@ -36,9 +36,7 @@ func initAlertNotification() {
|
||||
return err
|
||||
}
|
||||
var result *printutils.ListResult
|
||||
if len(args.Alert) > 0 {
|
||||
result, err = monitor.Alertnotification.ListDescendent(s, args.Alert, params)
|
||||
} else if len(args.Notification) > 0 {
|
||||
if len(args.Notification) > 0 {
|
||||
result, err = monitor.Alertnotification.ListDescendent2(s, args.Notification, params)
|
||||
} else {
|
||||
result, err = monitor.Alertnotification.List(s, params)
|
||||
|
||||
@@ -15,10 +15,136 @@
|
||||
package monitor
|
||||
|
||||
import (
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
monitorapi "yunion.io/x/onecloud/pkg/apis/monitor"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/monitor"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/monitor"
|
||||
)
|
||||
|
||||
type CommonAlertTerm struct {
|
||||
Database string
|
||||
Measurement string
|
||||
Operator string // and / or
|
||||
Field []string
|
||||
FieldFunc string
|
||||
|
||||
Reduce string
|
||||
Comparator string
|
||||
Threshold float64
|
||||
Filters []monitorapi.MetricQueryTag
|
||||
FieldOpt string
|
||||
Name string
|
||||
ConditionType string
|
||||
From string
|
||||
Interval string
|
||||
GroupBy string
|
||||
Level string
|
||||
}
|
||||
|
||||
func newCommonAlertQuery(tem *CommonAlertTerm) *monitorapi.CommonAlertQuery {
|
||||
mq := monitorapi.MetricQuery{
|
||||
Alias: "",
|
||||
Tz: "",
|
||||
Database: tem.Database,
|
||||
Measurement: tem.Measurement,
|
||||
Tags: make([]monitorapi.MetricQueryTag, 0),
|
||||
GroupBy: make([]monitorapi.MetricQueryPart, 0),
|
||||
Selects: nil,
|
||||
Interval: "",
|
||||
Policy: "",
|
||||
ResultFormat: "",
|
||||
}
|
||||
|
||||
for _, field := range tem.Field {
|
||||
sel := monitorapi.MetricQueryPart{
|
||||
Type: "field",
|
||||
Params: []string{field},
|
||||
}
|
||||
selectPart := []monitorapi.MetricQueryPart{sel}
|
||||
if len(tem.FieldFunc) != 0 {
|
||||
selectPart = append(selectPart, monitorapi.MetricQueryPart{
|
||||
Type: tem.FieldFunc,
|
||||
Params: []string{},
|
||||
})
|
||||
} else {
|
||||
selectPart = append(selectPart, monitorapi.MetricQueryPart{
|
||||
Type: "mean",
|
||||
Params: []string{},
|
||||
})
|
||||
}
|
||||
mq.Selects = append(mq.Selects, selectPart)
|
||||
}
|
||||
if len(tem.Filters) != 0 {
|
||||
for _, filter := range tem.Filters {
|
||||
mq.Tags = append(mq.Tags, filter)
|
||||
}
|
||||
}
|
||||
|
||||
alertQ := new(monitorapi.AlertQuery)
|
||||
alertQ.Model = mq
|
||||
alertQ.From = "60m"
|
||||
|
||||
commonAlert := monitorapi.CommonAlertQuery{
|
||||
AlertQuery: alertQ,
|
||||
Reduce: tem.Reduce,
|
||||
Comparator: tem.Comparator,
|
||||
Threshold: tem.Threshold,
|
||||
Operator: tem.Operator,
|
||||
}
|
||||
if tem.FieldOpt != "" {
|
||||
commonAlert.FieldOpt = monitorapi.CommonAlertFieldOpt_Division
|
||||
}
|
||||
if len(tem.ConditionType) != 0 {
|
||||
commonAlert.ConditionType = tem.ConditionType
|
||||
}
|
||||
if len(tem.GroupBy) != 0 {
|
||||
commonAlert.Model.GroupBy = append(commonAlert.Model.GroupBy, monitorapi.MetricQueryPart{
|
||||
Type: "field",
|
||||
Params: []string{tem.GroupBy},
|
||||
})
|
||||
}
|
||||
return &commonAlert
|
||||
}
|
||||
|
||||
var (
|
||||
cpuTem = &CommonAlertTerm{
|
||||
Operator: "or",
|
||||
Database: "telegraf",
|
||||
Measurement: "vm_cpu",
|
||||
Field: []string{"usage_active"},
|
||||
Comparator: ">=",
|
||||
Reduce: "avg",
|
||||
Threshold: 50,
|
||||
Name: "lzx-test.cpu.usage_active",
|
||||
Filters: []monitorapi.MetricQueryTag{
|
||||
{
|
||||
Key: "id",
|
||||
Operator: "=",
|
||||
Value: "a0eee5dd-3cfe-4ab1-8c79-aee1a8cf4dab",
|
||||
},
|
||||
},
|
||||
}
|
||||
memTem = &CommonAlertTerm{
|
||||
Operator: "or",
|
||||
Database: "telegraf",
|
||||
Measurement: "vm_mem",
|
||||
Field: []string{"used_percent"},
|
||||
Comparator: ">=",
|
||||
Reduce: "avg",
|
||||
Threshold: 3,
|
||||
Name: "lzx-test.mem.avaiable",
|
||||
Filters: []monitorapi.MetricQueryTag{
|
||||
{
|
||||
Key: "id",
|
||||
Operator: "=",
|
||||
Value: "a0eee5dd-3cfe-4ab1-8c79-aee1a8cf4dab",
|
||||
},
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := NewResourceCmd(modules.CommonAlerts)
|
||||
cmd.Create(new(options.CommonAlertCreateOptions))
|
||||
@@ -28,4 +154,34 @@ func init() {
|
||||
cmd.Perform("disable", &options.CommonAlertShowOptions{})
|
||||
cmd.BatchDelete(new(options.CommonAlertDeleteOptions))
|
||||
cmd.Perform("config", &options.CommonAlertUpdateOptions{})
|
||||
|
||||
type TestOpt struct {
|
||||
NAME string
|
||||
RobotIds []string
|
||||
Users []string
|
||||
}
|
||||
R(&TestOpt{}, "monitor-commonalert-create-mul-test", "create test monitor common alert", func(s *mcclient.ClientSession, opt *TestOpt) error {
|
||||
cpuQ := newCommonAlertQuery(cpuTem)
|
||||
memQ := newCommonAlertQuery(memTem)
|
||||
input := monitorapi.CommonAlertCreateInput{
|
||||
CommonMetricInputQuery: monitorapi.CommonMetricInputQuery{
|
||||
MetricQuery: []*monitorapi.CommonAlertQuery{
|
||||
cpuQ,
|
||||
memQ,
|
||||
},
|
||||
},
|
||||
AlertCreateInput: monitorapi.AlertCreateInput{
|
||||
Name: opt.NAME,
|
||||
},
|
||||
CommonAlertCreateBaseInput: monitorapi.CommonAlertCreateBaseInput{
|
||||
Recipients: opt.Users,
|
||||
RobotIds: opt.RobotIds,
|
||||
Channel: []string{"webconsole"},
|
||||
AlertType: monitorapi.CommonAlertNomalAlertType,
|
||||
Scope: "system",
|
||||
},
|
||||
}
|
||||
_, err := modules.CommonAlerts.Create(s, jsonutils.Marshal(input))
|
||||
return err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -21,7 +21,6 @@ import (
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/notify"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules/notify"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/notify"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
)
|
||||
@@ -42,17 +41,17 @@ func init() {
|
||||
err error
|
||||
)
|
||||
if args.Oldsdk {
|
||||
msg := notify.SNotifyMessage{
|
||||
msg := modules.SNotifyMessage{
|
||||
Uid: args.Receivers,
|
||||
Robots: args.Robots,
|
||||
ContactType: notify.TNotifyChannel(args.ContactType),
|
||||
ContactType: modules.TNotifyChannel(args.ContactType),
|
||||
Topic: args.TOPIC,
|
||||
Priority: notify.TNotifyPriority(args.Priority),
|
||||
Priority: modules.TNotifyPriority(args.Priority),
|
||||
Msg: args.MESSAGE,
|
||||
Remark: "",
|
||||
Broadcast: false,
|
||||
}
|
||||
err = notify.Notifications.Send(s, msg)
|
||||
err = modules.Notifications.Send(s, msg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -12,18 +12,16 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package compute
|
||||
package notify
|
||||
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/notify"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/notify"
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.WafIPSetCaches)
|
||||
cmd.List(&compute.WafIPSetCacheListOptions{})
|
||||
cmd.Show(&options.BaseIdOptions{})
|
||||
cmd.Delete(&options.BaseIdOptions{})
|
||||
cmd := shell.NewResourceCmd(&modules.NotifyAction)
|
||||
cmd.List(new(options.SNotifyActionListInput))
|
||||
cmd.Create(new(options.SNotifyActionCreateInput))
|
||||
}
|
||||
@@ -12,18 +12,16 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package compute
|
||||
package notify
|
||||
|
||||
import (
|
||||
"yunion.io/x/onecloud/cmd/climc/shell"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/options/compute"
|
||||
modules "yunion.io/x/onecloud/pkg/mcclient/modules/notify"
|
||||
options "yunion.io/x/onecloud/pkg/mcclient/options/notify"
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd := shell.NewResourceCmd(&modules.WafRegexSetCaches)
|
||||
cmd.List(&compute.WafRegexSetCacheListOptions{})
|
||||
cmd.Show(&options.BaseIdOptions{})
|
||||
cmd.Delete(&options.BaseIdOptions{})
|
||||
cmd := shell.NewResourceCmd(&modules.NotifyResource)
|
||||
cmd.List(new(options.SNotifyResourceListInput))
|
||||
cmd.Create(new(options.SNotifyResourceCreateInput))
|
||||
}
|
||||
@@ -25,4 +25,8 @@ func init() {
|
||||
cmd.List(new(options.TopicListOptions))
|
||||
cmd.Update(new(options.TopicUpdateOptions))
|
||||
cmd.Show(new(options.TopicOptions))
|
||||
cmd.Perform("add-action", new(options.STopicAddActionInput))
|
||||
cmd.Perform("add-resource", new(options.STopicAddResourceInput))
|
||||
cmd.Perform("remove-action", new(options.STopicAddActionInput))
|
||||
cmd.Perform("remove-resource", new(options.STopicAddResourceInput))
|
||||
}
|
||||
|
||||
@@ -15,10 +15,15 @@
|
||||
package yunionconf
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/pkg/util/printutils"
|
||||
"yunion.io/x/pkg/util/shellutils"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/yunionconf"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules/identity"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules/yunionconf"
|
||||
@@ -241,4 +246,100 @@ func init() {
|
||||
printObject(parameter)
|
||||
return nil
|
||||
})
|
||||
|
||||
type ParameterCloneOptions struct {
|
||||
User string `help:"Clone parameter of specificated user id"`
|
||||
Service string `help:"Clone parameter of specificated service id"`
|
||||
NAME string `help:"The name of parameter"`
|
||||
DestUser string `help:"destination user id of clone action"`
|
||||
DestService string `help:"destination service id of clone action"`
|
||||
DestName string `help:"destination parameter name of clone action, may be empty"`
|
||||
}
|
||||
R(&ParameterCloneOptions{}, "parameter-clone", "clone parameter", func(s *mcclient.ClientSession, args *ParameterCloneOptions) error {
|
||||
input := api.ParameterCloneInput{}
|
||||
|
||||
input.DestName = args.DestName
|
||||
|
||||
if len(args.DestUser) > 0 {
|
||||
input.DestNs = api.NAMESPACE_USER
|
||||
input.DestNsId = args.DestUser
|
||||
} else if len(args.DestService) > 0 {
|
||||
input.DestNs = api.NAMESPACE_SERVICE
|
||||
input.DestNsId = args.DestService
|
||||
} else {
|
||||
return errors.Wrap(httperrors.ErrMissingParameter, "either dest_user or dest_service must be specified")
|
||||
}
|
||||
params := jsonutils.Marshal(input).(*jsonutils.JSONDict)
|
||||
|
||||
var parameter jsonutils.JSONObject
|
||||
var err error
|
||||
if len(args.User) > 0 {
|
||||
parameter, err = yunionconf.Parameters.PerformActionInContext(s, args.NAME, "clone", params, &identity.UsersV3, args.User)
|
||||
} else if len(args.Service) > 0 {
|
||||
parameter, err = yunionconf.Parameters.PerformActionInContext(s, args.NAME, "clone", params, &identity.ServicesV3, args.Service)
|
||||
} else {
|
||||
parameter, err = yunionconf.Parameters.PerformAction(s, args.NAME, "clone", params)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
printObject(parameter)
|
||||
return nil
|
||||
})
|
||||
|
||||
type ParameterCloneDashboardOptions struct {
|
||||
SCOPE string `help:"dashboard scope" choices:"system|domain|project"`
|
||||
SRC string `help:"source user id"`
|
||||
DST string `help:"destination user id"`
|
||||
}
|
||||
R(&ParameterCloneDashboardOptions{}, "parameter-clone-dashboard", "clone dashboard parameter", func(s *mcclient.ClientSession, args *ParameterCloneDashboardOptions) error {
|
||||
cloneUserParams := func(srcUid, destUid, name string) (jsonutils.JSONObject, error) {
|
||||
paramId, err := yunionconf.Parameters.GetIdInContext(s, name, nil, &identity.UsersV3, srcUid)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "GetByName %s", name)
|
||||
}
|
||||
input := api.ParameterCloneInput{
|
||||
DestNs: api.NAMESPACE_USER,
|
||||
DestNsId: destUid,
|
||||
}
|
||||
params := jsonutils.Marshal(input).(*jsonutils.JSONDict)
|
||||
return yunionconf.Parameters.PerformActionInContext(s, paramId, "clone", params, &identity.UsersV3, srcUid)
|
||||
}
|
||||
|
||||
rootName := fmt.Sprintf("dashboard_%s", args.SCOPE)
|
||||
|
||||
confs := []struct {
|
||||
Id string
|
||||
Name string
|
||||
}{}
|
||||
|
||||
paramObj, err := yunionconf.Parameters.GetInContext(s, rootName, nil, &identity.UsersV3, args.SRC)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "GetParameter")
|
||||
}
|
||||
|
||||
err = paramObj.Unmarshal(&confs, "value")
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "unmarshal value")
|
||||
}
|
||||
|
||||
for _, conf := range confs {
|
||||
_, err := cloneUserParams(args.SRC, args.DST, conf.Id)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "clone %s", conf.Id)
|
||||
}
|
||||
fmt.Println("cloned", conf.Id)
|
||||
}
|
||||
|
||||
// finally copy the root
|
||||
_, err = cloneUserParams(args.SRC, args.DST, rootName)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "clone %s", rootName)
|
||||
}
|
||||
fmt.Println("cloned", rootName)
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ type BaseOptions struct {
|
||||
Host string `help:"SSH Host IP" default:"$RAID_HOST" metavar:"RAID_HOST"`
|
||||
Username string `help:"Username, usually root" default:"$RAID_USERNAME" metavar:"RAID_USERNAME"`
|
||||
Password string `help:"Password" default:"$RAID_PASSWORD" metavar:"RAID_PASSWORD"`
|
||||
Driver string `help:"Raid dirver" default:"$RAID_DRIVER" metavar:"RAID_DRIVER" choices:"MegaRaid|HPSARaid|Mpt2SAS|MarvelRaid"`
|
||||
Driver string `help:"Raid driver" default:"$RAID_DRIVER" metavar:"RAID_DRIVER" choices:"MegaRaid|HPSARaid|Mpt2SAS|MarvelRaid"`
|
||||
LocalHost bool `help:"Run raidcli in localhost"`
|
||||
SUBCOMMAND string `help:"s3cli subcommand" subcommand:"true"`
|
||||
}
|
||||
|
||||
110
go.mod
110
go.mod
@@ -1,13 +1,12 @@
|
||||
module yunion.io/x/onecloud
|
||||
|
||||
go 1.18
|
||||
go 1.21
|
||||
|
||||
require (
|
||||
bazil.org/fuse v0.0.0-20180421153158-65cc252bf669
|
||||
github.com/360EntSecGroup-Skylar/excelize v1.4.0
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20220328021224-de16b7643ea4
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20240205084113-fbf78c8480f2
|
||||
github.com/aliyun/alibaba-cloud-sdk-go v1.61.684
|
||||
github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778
|
||||
github.com/anacrolix/torrent v0.0.0-20181129073333-cc531b8c4a80
|
||||
github.com/benbjohnson/clock v1.0.0
|
||||
github.com/bitly/go-simplejson v0.5.0
|
||||
@@ -24,7 +23,7 @@ require (
|
||||
github.com/golang-plus/uuid v1.0.0
|
||||
github.com/golang/mock v1.4.4
|
||||
github.com/google/gopacket v1.1.17
|
||||
github.com/google/uuid v1.3.0
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/googollee/go-socket.io v0.0.0-20181214084611-0ad7206c347a
|
||||
github.com/gorilla/mux v1.7.0
|
||||
github.com/gorilla/websocket v1.4.1
|
||||
@@ -38,10 +37,10 @@ require (
|
||||
github.com/lestrrat-go/jwx v1.0.2
|
||||
github.com/lestrrat/go-jwx v0.0.0-20180221005942-b7d4802280ae
|
||||
github.com/libvirt/libvirt-go-xml v5.2.0+incompatible
|
||||
github.com/mattn/go-sqlite3 v1.14.12
|
||||
github.com/mattn/go-sqlite3 v1.14.19
|
||||
github.com/mdlayher/arp v0.0.0-20190313224443-98a83c8a2717
|
||||
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7
|
||||
github.com/mdlayher/raw v0.0.0-20190606144222-a54781e5f38f
|
||||
github.com/mdlayher/packet v1.1.2
|
||||
github.com/mholt/caddy v0.10.11
|
||||
github.com/miekg/dns v1.1.25
|
||||
github.com/minio/minio-go v6.0.14+incompatible
|
||||
@@ -58,27 +57,27 @@ require (
|
||||
github.com/sirupsen/logrus v1.9.0
|
||||
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9
|
||||
github.com/smartystreets/goconvey v1.7.2
|
||||
github.com/stretchr/testify v1.8.1
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e
|
||||
github.com/tjfoc/gmsm v1.4.1
|
||||
github.com/tredoe/osutil/v2 v2.0.0-rc.16
|
||||
github.com/tredoe/osutil v1.5.0
|
||||
github.com/vishvananda/netlink v1.1.0
|
||||
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74
|
||||
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601
|
||||
github.com/vmihailenco/msgpack v4.0.4+incompatible
|
||||
github.com/xuri/excelize/v2 v2.7.1
|
||||
github.com/zexi/influxql-to-metricsql v0.0.6
|
||||
github.com/zexi/influxql-to-metricsql v0.1.0
|
||||
go.etcd.io/etcd/api/v3 v3.5.0
|
||||
go.etcd.io/etcd/client/v3 v3.5.0
|
||||
golang.org/x/crypto v0.8.0
|
||||
golang.org/x/net v0.9.0
|
||||
golang.org/x/sync v0.1.0
|
||||
golang.org/x/sys v0.9.0
|
||||
golang.org/x/text v0.9.0
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1
|
||||
golang.org/x/crypto v0.19.0
|
||||
golang.org/x/net v0.21.0
|
||||
golang.org/x/sync v0.6.0
|
||||
golang.org/x/sys v0.17.0
|
||||
golang.org/x/text v0.14.0
|
||||
golang.org/x/time v0.5.0
|
||||
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028
|
||||
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230215201556-9c5414ab4bde
|
||||
google.golang.org/grpc v1.38.0
|
||||
google.golang.org/protobuf v1.27.1
|
||||
google.golang.org/grpc v1.62.0
|
||||
google.golang.org/protobuf v1.32.0
|
||||
gopkg.in/fatih/set.v0 v0.2.1
|
||||
gopkg.in/ldap.v3 v3.0.3
|
||||
gopkg.in/mail.v2 v2.3.1
|
||||
@@ -89,20 +88,23 @@ require (
|
||||
k8s.io/cluster-bootstrap v0.19.3
|
||||
k8s.io/cri-api v0.22.17
|
||||
moul.io/http2curl/v2 v2.3.0
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240407070842-c86e783a71ae
|
||||
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32
|
||||
yunion.io/x/jsonutils v1.0.1-0.20240203102553-4096f103b401
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20241231161259-655e77daa48e
|
||||
yunion.io/x/executor v0.0.0-20241205080005-48f5b1212256
|
||||
yunion.io/x/jsonutils v1.0.1-0.20240930100528-1671a2d0d22f
|
||||
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91
|
||||
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900
|
||||
yunion.io/x/pkg v1.10.1-0.20240407074633-3b5e6127232f
|
||||
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20240326090913-96da8bf92408
|
||||
yunion.io/x/pkg v1.10.2
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20240926163039-d41512b264e1
|
||||
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c
|
||||
)
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.65.0 // indirect
|
||||
cloud.google.com/go/storage v1.10.0 // indirect
|
||||
cloud.google.com/go v0.112.1 // indirect
|
||||
cloud.google.com/go/compute v1.24.0 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||
cloud.google.com/go/iam v1.1.6 // indirect
|
||||
cloud.google.com/go/storage v1.39.1 // indirect
|
||||
gitee.com/chunanyong/dm v1.8.14 // indirect
|
||||
github.com/Azure/azure-sdk-for-go v36.1.0+incompatible // indirect
|
||||
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
||||
@@ -128,6 +130,7 @@ require (
|
||||
github.com/anacrolix/log v0.0.0-20180808012509-286fcf906b48 // indirect
|
||||
github.com/anacrolix/missinggo v0.0.0-20181129073415-3237bf955fed // indirect
|
||||
github.com/anacrolix/mmsg v0.0.0-20180808012353-5adb2c1127c0 // indirect
|
||||
github.com/anacrolix/sync v0.0.0-20180808010631-44578de4e778 // indirect
|
||||
github.com/anacrolix/utp v0.0.0-20180219060659-9e0e1d1d0572 // indirect
|
||||
github.com/aokoli/goutils v1.0.1 // indirect
|
||||
github.com/apache/thrift v0.13.0 // indirect
|
||||
@@ -140,7 +143,7 @@ require (
|
||||
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc // indirect
|
||||
github.com/bradfitz/iter v0.0.0-20140124041915-454541ec3da2 // indirect
|
||||
github.com/cespare/xxhash v1.1.0 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
||||
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect
|
||||
github.com/coreos/go-semver v0.3.0 // indirect
|
||||
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
|
||||
@@ -156,12 +159,14 @@ require (
|
||||
github.com/elgatito/upnp v0.0.0-20180711183757-2f244d205f9a // indirect
|
||||
github.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710 // indirect
|
||||
github.com/fatih/color v1.13.0 // indirect
|
||||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 // indirect
|
||||
github.com/frankban/quicktest v1.14.3 // indirect
|
||||
github.com/gin-contrib/sse v0.1.0 // indirect
|
||||
github.com/glycerine/go-unsnap-stream v0.0.0-20181221182339-f9677308dec2 // indirect
|
||||
github.com/go-logfmt/logfmt v0.5.0 // indirect
|
||||
github.com/go-logr/logr v0.4.0 // indirect
|
||||
github.com/go-logr/logr v1.4.2 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-ole/go-ole v1.2.6 // indirect
|
||||
github.com/go-playground/locales v0.13.0 // indirect
|
||||
github.com/go-playground/universal-translator v0.17.0 // indirect
|
||||
@@ -170,13 +175,15 @@ require (
|
||||
github.com/gofrs/uuid v4.1.0+incompatible // indirect
|
||||
github.com/gogo/protobuf v1.3.2 // indirect
|
||||
github.com/golang-plus/errors v1.0.0 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect
|
||||
github.com/golang/protobuf v1.5.2 // indirect
|
||||
github.com/golang/snappy v0.0.1 // indirect
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||
github.com/golang/protobuf v1.5.3 // indirect
|
||||
github.com/golang/snappy v0.0.4 // indirect
|
||||
github.com/google/btree v1.0.1 // indirect
|
||||
github.com/google/go-querystring v1.0.0 // indirect
|
||||
github.com/google/gofuzz v1.1.0 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.0.5 // indirect
|
||||
github.com/google/s2a-go v0.1.7 // indirect
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.12.2 // indirect
|
||||
github.com/googleapis/gnostic v0.4.1 // indirect
|
||||
github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb // indirect
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect
|
||||
@@ -186,8 +193,8 @@ require (
|
||||
github.com/imdario/mergo v0.3.6 // indirect
|
||||
github.com/jdcloud-api/jdcloud-sdk-go v1.55.0 // indirect
|
||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||
github.com/josharian/native v1.1.0 // indirect
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/jstemmer/go-junit-report v0.9.1 // indirect
|
||||
github.com/jtolds/gls v4.20.0+incompatible // indirect
|
||||
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect
|
||||
github.com/kr/fs v0.1.0 // indirect
|
||||
@@ -202,6 +209,8 @@ require (
|
||||
github.com/mattn/go-runewidth v0.0.13 // indirect
|
||||
github.com/mattn/go-tty v0.0.0-20181127064339-e4f871175a2f // indirect
|
||||
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
|
||||
github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18 // indirect
|
||||
github.com/mdlayher/socket v0.4.1 // indirect
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
|
||||
github.com/minio/minio-go/v6 v6.0.33 // indirect
|
||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||
@@ -233,7 +242,7 @@ require (
|
||||
github.com/smartystreets/assertions v1.2.0 // indirect
|
||||
github.com/spaolacci/murmur3 v1.1.0 // indirect
|
||||
github.com/spf13/pflag v1.0.5 // indirect
|
||||
github.com/stretchr/objx v0.5.0 // indirect
|
||||
github.com/stretchr/objx v0.5.2 // indirect
|
||||
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.413 // indirect
|
||||
github.com/tencentyun/cos-go-sdk-v5 v0.7.24 // indirect
|
||||
github.com/texttheater/golang-levenshtein v0.0.0-20180516184445-d188e65d659e // indirect
|
||||
@@ -241,7 +250,8 @@ require (
|
||||
github.com/tklauser/go-sysconf v0.3.10 // indirect
|
||||
github.com/tklauser/numcpus v0.4.0 // indirect
|
||||
github.com/ugorji/go/codec v1.1.7 // indirect
|
||||
github.com/vmware/govmomi v0.20.1 // indirect
|
||||
github.com/ulikunitz/xz v0.5.12 // indirect
|
||||
github.com/vmware/govmomi v0.37.1 // indirect
|
||||
github.com/volcengine/ve-tos-golang-sdk/v2 v2.6.2 // indirect
|
||||
github.com/volcengine/volc-sdk-golang v1.0.23 // indirect
|
||||
github.com/willf/bitset v1.1.9 // indirect
|
||||
@@ -250,25 +260,33 @@ require (
|
||||
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect
|
||||
github.com/yusufpapurcu/wmi v1.2.2 // indirect
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.0 // indirect
|
||||
go.opencensus.io v0.22.4 // indirect
|
||||
go.opencensus.io v0.24.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 // indirect
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 // indirect
|
||||
go.opentelemetry.io/otel v1.23.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.23.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.23.0 // indirect
|
||||
go.uber.org/atomic v1.7.0 // indirect
|
||||
go.uber.org/multierr v1.6.0 // indirect
|
||||
go.uber.org/zap v1.17.0 // indirect
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
|
||||
golang.org/x/mod v0.8.0 // indirect
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c // indirect
|
||||
golang.org/x/term v0.7.0 // indirect
|
||||
golang.org/x/tools v0.6.0 // indirect
|
||||
google.golang.org/api v0.30.0 // indirect
|
||||
google.golang.org/appengine v1.6.6 // indirect
|
||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c // indirect
|
||||
golang.org/x/oauth2 v0.17.0 // indirect
|
||||
golang.org/x/term v0.17.0 // indirect
|
||||
google.golang.org/api v0.167.0 // indirect
|
||||
google.golang.org/appengine v1.6.8 // indirect
|
||||
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240304161311-37d4d3c04a78 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 // indirect
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
|
||||
gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d // indirect
|
||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
k8s.io/klog/v2 v2.2.0 // indirect
|
||||
k8s.io/klog/v2 v2.20.0 // indirect
|
||||
k8s.io/utils v0.0.0-20200729134348-d5654de09c73 // indirect
|
||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.1 // indirect
|
||||
sigs.k8s.io/yaml v1.2.0 // indirect
|
||||
)
|
||||
|
||||
replace github.com/influxdata/promql/v2 => github.com/zexi/promql/v2 v2.12.1
|
||||
|
||||
replace github.com/Azure/azure-sdk-for-go => github.com/Azure/azure-sdk-for-go v36.1.0+incompatible
|
||||
|
||||
207
go.sum
207
go.sum
@@ -15,16 +15,23 @@ cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bP
|
||||
cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk=
|
||||
cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs=
|
||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
|
||||
cloud.google.com/go v0.65.0 h1:Dg9iHVQfrhq82rUNu9ZxUDrJLaxFUe/HlCVaLyRruq8=
|
||||
cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY=
|
||||
cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM=
|
||||
cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc=
|
||||
cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg=
|
||||
cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc=
|
||||
cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ=
|
||||
cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg=
|
||||
cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40=
|
||||
cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY=
|
||||
cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
|
||||
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
|
||||
cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk=
|
||||
cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc=
|
||||
cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI=
|
||||
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
|
||||
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
|
||||
cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA=
|
||||
@@ -33,14 +40,14 @@ cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiy
|
||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
||||
cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk=
|
||||
cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs=
|
||||
cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA=
|
||||
cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0=
|
||||
cloud.google.com/go/storage v1.39.1 h1:MvraqHKhogCOTXTlct/9C3K3+Uy2jBmFYb3/Sp6dVtY=
|
||||
cloud.google.com/go/storage v1.39.1/go.mod h1:xK6xZmxZmo+fyP7+DEF6FhNc24/JAe95OLyOHCXFH1o=
|
||||
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
|
||||
gitee.com/chunanyong/dm v1.8.14 h1:1S9+aD0fY/HXkcm8dKh2HjYsDlcdXNG+4IOX9JtrSjA=
|
||||
gitee.com/chunanyong/dm v1.8.14/go.mod h1:EPRJnuPFgbyOFgJ0TRYCTGzhq+ZT4wdyaj/GW/LLcNg=
|
||||
github.com/360EntSecGroup-Skylar/excelize v1.4.0 h1:43rak9uafmwSJpXfFO1heKQph8tP3nlfWJWFQQtW1R0=
|
||||
github.com/360EntSecGroup-Skylar/excelize v1.4.0/go.mod h1:R8KYLmGns0vDPe6/HyphW0mzW+MFexlGDafU0ykVEnU=
|
||||
github.com/Azure/azure-sdk-for-go v5.0.0-beta.0.20161118192335-3b1282355199+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
||||
github.com/Azure/azure-sdk-for-go v36.1.0+incompatible h1:smHlbChr/JDmsyUqELZXLs0YIgpXecIGdUibuc2983s=
|
||||
github.com/Azure/azure-sdk-for-go v36.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
||||
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
|
||||
@@ -66,6 +73,7 @@ github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxB
|
||||
github.com/Azure/go-autorest/autorest/mocks v0.3.0 h1:qJumjCaCudz+OcqE9/XtEPfvtOjOmKaui4EOpFI6zZc=
|
||||
github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM=
|
||||
github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk=
|
||||
github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE=
|
||||
github.com/Azure/go-autorest/logger v0.1.0 h1:ruG4BSDXONFRrZZJ2GUXDiUyVpayPmb1GnWeHDdaNKY=
|
||||
github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc=
|
||||
github.com/Azure/go-autorest/tracing v0.5.0 h1:TRn4WjSnkcSy5AEG3pnbtFSwNtwzjr4VYyQflFE619k=
|
||||
@@ -78,8 +86,8 @@ github.com/DataDog/dd-trace-go v0.6.1 h1:nsZ2lohbSw1CKtfNRu3wPh1jFirv6XSz8vqNpuI
|
||||
github.com/DataDog/dd-trace-go v0.6.1/go.mod h1:SmQTTcC37XMyEm75HV0AWiZIYxDiaNhRi49zorIpW+o=
|
||||
github.com/DataDog/zstd v1.3.4 h1:LAGHkXuvC6yky+C2CUG2tD7w8QlrUwpue8XwIh0X4AY=
|
||||
github.com/DataDog/zstd v1.3.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20220328021224-de16b7643ea4 h1:Gk7m4Nu2jqVqJAJqNlTYqkiq96WkANAtB4fVi+t7Xv8=
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20220328021224-de16b7643ea4/go.mod h1:tiLv6VBLH4Z3KdBSe2qIKRwQDGCVQ9/F5fOKpQGvyoA=
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20240205084113-fbf78c8480f2 h1:XGB3B0651J1uKOE1KJa1gsrV/DO1kthhk2NTDUHATgs=
|
||||
github.com/LeeEirc/terminalparser v0.0.0-20240205084113-fbf78c8480f2/go.mod h1:tiLv6VBLH4Z3KdBSe2qIKRwQDGCVQ9/F5fOKpQGvyoA=
|
||||
github.com/Microsoft/azure-vhd-utils v0.0.0-20181115010904-44cbada2ece3 h1:gImoAO1xAcC1oDlYmD/X7dggsodGf2DFJOVE5m0ssms=
|
||||
github.com/Microsoft/azure-vhd-utils v0.0.0-20181115010904-44cbada2ece3/go.mod h1:u0H9gMieFLxkUy8RS0X8VbFWyPs2815qQAaitRbj6x0=
|
||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||
@@ -152,6 +160,7 @@ github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevB
|
||||
github.com/aws/aws-sdk-go v1.39.0 h1:74BBwkEmiqBbi2CGflEh34l0YNtIibTjZsibGarkNjo=
|
||||
github.com/aws/aws-sdk-go v1.39.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
||||
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f h1:ZNv7On9kyUzm7fvRZumSyy/IUiSC7AzL0I1jKKtwooA=
|
||||
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
|
||||
github.com/basgys/goxml2json v1.1.1-0.20181031222924-996d9fc8d313 h1:fKPpQHBQgt4dQuG6x+yH4gdgtodFDgN9rvHzwJzTKeg=
|
||||
github.com/basgys/goxml2json v1.1.1-0.20181031222924-996d9fc8d313/go.mod h1:wH7a5Np/Q4QoECFIU8zTQlZwZkrilY0itPfecMw41Dw=
|
||||
github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs=
|
||||
@@ -180,8 +189,9 @@ github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA
|
||||
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
||||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
|
||||
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
|
||||
github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8 h1:bC8oemdChbke2FHIIGy9mn4DPJ2caZYQnfbRqwmdCoA=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8/go.mod h1:UICbiLec/XO6Hw6k+BHEtHeQFzzBH4i2/qk/ow1EJTA=
|
||||
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
|
||||
@@ -192,6 +202,8 @@ github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY
|
||||
github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=
|
||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||
github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa h1:jQCWAUqqlij9Pgj2i/PB79y4KOPYVyFYdROxgaCwdTQ=
|
||||
github.com/cncf/xds/go v0.0.0-20231128003011-0fa0005c9caa/go.mod h1:x/1Gn8zydmfq8dk6e9PdstVsDgu9RuyIIJqAaF//0IM=
|
||||
github.com/coredns/coredns v1.3.0 h1:Ubjr8ZrOpEj95/A9dqQqQAG2k5DWEFdg2ZB3tUXuULA=
|
||||
github.com/coredns/coredns v1.3.0/go.mod h1:zASH/MVDgR6XZTbxvOnsZfffS+31vg6Ackf/wo1+AM0=
|
||||
github.com/coreos/go-iptables v0.6.0 h1:is9qnZMPYjLd8LYqmm/qlE+wwEgJIkTYdhV3rfZo4jk=
|
||||
@@ -211,6 +223,7 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
|
||||
github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4=
|
||||
github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
|
||||
github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
|
||||
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
|
||||
github.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11 h1:m8nX8hsUghn853BJ5qB0lX+VvS6LTJPksWyILFZRYN4=
|
||||
github.com/dnstap/golang-dnstap v0.0.0-20170829151710-2cf77a2b5e11/go.mod h1:s1PfVYYVmTMgCSPtho4LKBDecEHJWtiVDPNv78Z985U=
|
||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
||||
@@ -236,12 +249,16 @@ github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.m
|
||||
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A=
|
||||
github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew=
|
||||
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||
github.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710 h1:QdyRyGZWLEvJG5Kw3VcVJvhXJ5tZ1MkRgqpJOEZSySM=
|
||||
github.com/farsightsec/golang-framestream v0.0.0-20181102145529-8a0cb8ba8710/go.mod h1:eNde4IQyEiA5br02AouhEHCu3p3UzrCdFR4LuQHklMI=
|
||||
github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
|
||||
github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
|
||||
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
|
||||
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||
github.com/fernet/fernet-go v0.0.0-20180830025343-9eac43b88a5e h1:P10tZmVD2XclAaT9l7OduMH1OLFzTa1wUuUqHZnEdI0=
|
||||
github.com/fernet/fernet-go v0.0.0-20180830025343-9eac43b88a5e/go.mod h1:2H9hjfbpSMHwY503FclkV/lZTBh2YlOmLLSda12uL8c=
|
||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ=
|
||||
@@ -276,8 +293,12 @@ github.com/go-logfmt/logfmt v0.5.0 h1:TrB8swr/68K7m9CcGut2g3UOihhbcbiMAYiuTXdEih
|
||||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
||||
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||
github.com/go-logr/logr v1.0.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
|
||||
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
|
||||
@@ -310,13 +331,15 @@ github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptG
|
||||
github.com/golang-plus/errors v1.0.0 h1:9Rh4itnph6OYO7wm9u3FUTLMFMKCoL07+bLiYKELxWw=
|
||||
github.com/golang-plus/errors v1.0.0/go.mod h1:YTFZjOTBcUFieeZe4q+7Umfu/sceSr3XQyBIkTkzpd8=
|
||||
github.com/golang-plus/testing v1.0.0 h1:azmFWFV44LHK/j/jAkNTbzB2G2b6HdmqF358r73m8kg=
|
||||
github.com/golang-plus/testing v1.0.0/go.mod h1:psANDlKPZ0ycedUzCS0Trf8h98sFyOyB51FlqyU+Ltc=
|
||||
github.com/golang-plus/uuid v1.0.0 h1:ga84hG89vda++AGpup4N/cbfbM3O4d3R5ON9/jcN6AY=
|
||||
github.com/golang-plus/uuid v1.0.0/go.mod h1:pBDDRrdgRHHqyYlj1d1i2gwyBq62Zc+sP2cDiCDkBLI=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY=
|
||||
github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
|
||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
|
||||
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
|
||||
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
|
||||
@@ -340,11 +363,13 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD
|
||||
github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
|
||||
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
|
||||
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
|
||||
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
|
||||
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
|
||||
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
|
||||
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
@@ -357,12 +382,14 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
|
||||
github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE=
|
||||
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
|
||||
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
|
||||
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
|
||||
github.com/google/go-querystring v1.0.0 h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk=
|
||||
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
|
||||
@@ -373,8 +400,9 @@ github.com/google/gopacket v1.1.17 h1:rMrlX2ZY2UbvT+sdz3+6J+pp2z+msCq9MxTU6ymxbB
|
||||
github.com/google/gopacket v1.1.17/go.mod h1:UdDNZ1OO62aGYVnPhxT1U6aI7ukYtA/kB8vaU0diBUM=
|
||||
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
|
||||
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
|
||||
github.com/google/martian/v3 v3.0.0 h1:pMen7vLs8nvgEYhywH3KDWJIJTeEr2ULsVWHWYHQyBs=
|
||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw=
|
||||
github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk=
|
||||
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
|
||||
github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
@@ -383,13 +411,19 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
|
||||
github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
|
||||
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
|
||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
|
||||
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
|
||||
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
|
||||
github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM=
|
||||
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
|
||||
github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA=
|
||||
github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc=
|
||||
github.com/googleapis/gnostic v0.4.1 h1:DLJCy1n/vrD4HPjOvYcT8aYQXpPIzoRZONaYwyycI+I=
|
||||
github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg=
|
||||
github.com/googollee/go-engine.io v0.0.0-20180829091931-e2f255711dcb h1:n22Aukg/TjoypWc37dbKIpCsz0VMFPD36HQk1WKvg3A=
|
||||
@@ -430,8 +464,6 @@ github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
|
||||
github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
|
||||
github.com/influxdata/influxql v1.1.0 h1:sPsaumLFRPMwR5QtD3Up54HXpNND8Eu7G1vQFmi3quQ=
|
||||
github.com/influxdata/influxql v1.1.0/go.mod h1:KpVI7okXjK6PRi3Z5B+mtKZli+R1DnZgb3N+tzevNgo=
|
||||
github.com/influxdata/promql/v2 v2.12.0 h1:kXn3p0D7zPw16rOtfDR+wo6aaiH8tSMfhPwONTxrlEc=
|
||||
github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8=
|
||||
github.com/ipandtcp/godingtalk v0.0.0-20180410032244-ca3d6ac197fb/go.mod h1:3umLciE1jBnh2LgrL15R2zbEe+HVPRZXnlSjjb/dYiw=
|
||||
github.com/jaypipes/ghw v0.11.0 h1:i0pKvAM7eZk0KvLm9vzpcpDKTRnfR6AQ5pFkPVnYJXU=
|
||||
github.com/jaypipes/ghw v0.11.0/go.mod h1:jeJGbkRB2lL3/gxYzNYzEDETV1ZJ56OKr+CSeSEym+g=
|
||||
@@ -444,6 +476,8 @@ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHW
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
|
||||
github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=
|
||||
github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA=
|
||||
github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
|
||||
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
|
||||
github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
|
||||
@@ -453,7 +487,6 @@ github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/
|
||||
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
|
||||
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
|
||||
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
|
||||
github.com/jstemmer/go-junit-report v0.9.1 h1:6QPYqodiu3GuPL+7mfx+NwDdp2eTkp9IfEUpgAwUN0o=
|
||||
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
|
||||
github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
||||
@@ -518,8 +551,8 @@ github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4
|
||||
github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
|
||||
github.com/mattn/go-sqlite3 v1.7.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/mattn/go-sqlite3 v1.14.12 h1:TJ1bhYJPV44phC+IMu1u2K/i5RriLTPe+yc68XDJ1Z0=
|
||||
github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/mattn/go-sqlite3 v1.14.19 h1:fhGleo2h1p8tVChob4I9HpmVFIAkKGpiukdrgQbWfGI=
|
||||
github.com/mattn/go-sqlite3 v1.14.19/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
|
||||
github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
|
||||
github.com/mattn/go-tty v0.0.0-20181127064339-e4f871175a2f h1:4P7Ul+TAnk92vTeVkXs6VLjmf1EhrYtDRa03PCYY6VM=
|
||||
github.com/mattn/go-tty v0.0.0-20181127064339-e4f871175a2f/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE=
|
||||
@@ -530,10 +563,13 @@ github.com/mdlayher/arp v0.0.0-20190313224443-98a83c8a2717/go.mod h1:eOj1DDj3NAZ
|
||||
github.com/mdlayher/ethernet v0.0.0-20190313224307-5b5fc417d966/go.mod h1:5s5p/sMJ6sNsFl6uCh85lkFGV8kLuIYJCRJLavVJwvg=
|
||||
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7 h1:lez6TS6aAau+8wXUP3G9I3TGlmPFEq2CTxBaRqY6AGE=
|
||||
github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQobyTjI/tJyq2HG+i/dfSoFUt8/aZCM+GKtmFk/Y=
|
||||
github.com/mdlayher/packet v1.1.2 h1:3Up1NG6LZrsgDVn6X4L9Ge/iyRyxFEFD9o6Pr3Q1nQY=
|
||||
github.com/mdlayher/packet v1.1.2/go.mod h1:GEu1+n9sG5VtiRE4SydOmX5GTwyyYlteZiFU+x0kew4=
|
||||
github.com/mdlayher/raw v0.0.0-20190313224157-43dbcdd7739d/go.mod h1:r1fbeITl2xL/zLbVnNHFyOzQJTgr/3fpf1lJX/cjzR8=
|
||||
github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18 h1:zwOa3e/13D6veNIz6zzuqrd3eZEMF0dzD0AQWKcYSs4=
|
||||
github.com/mdlayher/raw v0.0.0-20190606142536-fef19f00fc18/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
|
||||
github.com/mdlayher/raw v0.0.0-20190606144222-a54781e5f38f h1:Xjvm7UTnKTwrlhbs+8qA6I0v1iX77rY3QxftSgvOVRk=
|
||||
github.com/mdlayher/raw v0.0.0-20190606144222-a54781e5f38f/go.mod h1:7EpbotpCmVZcu+KCX4g9WaRNuu11uyhiW7+Le1dKawg=
|
||||
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
|
||||
github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/mholt/caddy v0.10.11 h1:s8X+R8DuBbrrMuUTcWSxlDe567B0s5EDmiDBKSYsioY=
|
||||
@@ -640,8 +676,9 @@ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
|
||||
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
|
||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
||||
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 h1:GHRpF1pTW19a8tTFrMLUcfWwyC0pnifVo2ClaLq+hP8=
|
||||
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46/go.mod h1:uAQ5PCi+MFsC7HjREoAz1BU+Mq60+05gifQSsHSDG/8=
|
||||
github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
|
||||
@@ -670,7 +707,6 @@ github.com/smartystreets/assertions v1.2.0 h1:42S6lae5dvLc7BrLu/0ugRtcFVjoJNMC/N
|
||||
github.com/smartystreets/assertions v1.2.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo=
|
||||
github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s=
|
||||
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||
github.com/smartystreets/goconvey v1.7.2 h1:9RBaZCeXEQ3UselpuwUQHltGVXvdwm6cv1hgR6gDIPg=
|
||||
github.com/smartystreets/goconvey v1.7.2/go.mod h1:Vw0tHAZW6lzCRk3xgdin6fKYcG+G3Pg9vgXWeJpQFMM=
|
||||
github.com/smartystreets/gunit v0.0.0-20180314194857-6f0d6275bdcd/go.mod h1:XUKj4gbqj2QvJk/OdLWzyZ3FYli0f+MdpngyryX0gcw=
|
||||
@@ -684,8 +720,9 @@ github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
|
||||
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
|
||||
github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
@@ -694,8 +731,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/syncthing/syncthing v0.14.48-rc.4/go.mod h1:nw3siZwHPA6M8iSfjDCWQ402eqvEIasMQOE8nFOxy7M=
|
||||
github.com/tailscale/depaware v0.0.0-20210622194025-720c4b409502/go.mod h1:p9lPsd+cx33L3H9nNoecRRxPssFKUwwI50I3pZ0yT+8=
|
||||
github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e h1:nt2877sKfojlHCTOBXbpWjBkuWKritFaGIfgQwbQUls=
|
||||
@@ -715,20 +753,22 @@ github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03O
|
||||
github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk=
|
||||
github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o=
|
||||
github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ=
|
||||
github.com/tredoe/osutil/v2 v2.0.0-rc.16 h1:5A2SKvyB2c3lhPYUIHyFtu6jbaXlaA3Hu5gWIam8Pik=
|
||||
github.com/tredoe/osutil/v2 v2.0.0-rc.16/go.mod h1:uLRVx/3pb7Y4RQhG8cQFbPE9ha5r81e6MXpBsxbTAYc=
|
||||
github.com/tredoe/osutil v1.5.0 h1:UGVxbbHRoZi8xXVmbNZ2vgG6XoJ15ndE4LniiQ3rJKg=
|
||||
github.com/tredoe/osutil v1.5.0/go.mod h1:TEzphzUUunysbdDRfdOgqkg10POQbnfIPV50ynqOfIg=
|
||||
github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw=
|
||||
github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs=
|
||||
github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY=
|
||||
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
|
||||
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
|
||||
github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=
|
||||
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
||||
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
|
||||
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74 h1:gga7acRE695APm9hlsSMoOoE65U4/TcqNj90mc69Rlg=
|
||||
github.com/vishvananda/netns v0.0.0-20211101163701-50045581ed74/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
|
||||
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601 h1:eELqkILRCR0kkoFujWv/hGyn+KfpGjHY01Rl1p42CBg=
|
||||
github.com/vishvananda/netns v0.0.5-0.20240412164733-9469873f4601/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM=
|
||||
github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI=
|
||||
github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
|
||||
github.com/vmware/govmomi v0.20.1 h1:7b/SeTUB3tER8ZLGLLLH3xcnB2xeuLULXmfPFqPSRZA=
|
||||
github.com/vmware/govmomi v0.20.1/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
|
||||
github.com/vmware/govmomi v0.37.1 h1:SpI+Ofq+lC1zsLcJ9szLSb7fL4TypReVvUoWIgk2b6U=
|
||||
github.com/vmware/govmomi v0.37.1/go.mod h1:mtGWtM+YhTADHlCgJBiskSRPOZRsN9MSjPzaZLte/oQ=
|
||||
github.com/volcengine/ve-tos-golang-sdk/v2 v2.6.2 h1:FZ7zrUf70YKVuES50mHO3z2VW0K+Arq4uGlDqb+1VA0=
|
||||
github.com/volcengine/ve-tos-golang-sdk/v2 v2.6.2/go.mod h1:IrjK84IJJTuOZOTMv/P18Ydjy/x+ow7fF7q11jAxXLM=
|
||||
github.com/volcengine/volc-sdk-golang v1.0.23 h1:anOslb2Qp6ywnsbyq9jqR0ljuO63kg9PY+4OehIk5R8=
|
||||
@@ -753,8 +793,10 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
|
||||
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
|
||||
github.com/zexi/influxql-to-metricsql v0.0.6 h1:E16T4oqgjIJtSNVvhGGHnw+pmY3yGz2iRsmmmSVuOpY=
|
||||
github.com/zexi/influxql-to-metricsql v0.0.6/go.mod h1:PyRRM+3Zrzzig6J4okYLeSv+/d+5GaL5ccBaUKQABNs=
|
||||
github.com/zexi/influxql-to-metricsql v0.1.0 h1:gSXhnYEu16fHNs5e1NSdNYceKdlKjMijTHEpnnMVYN4=
|
||||
github.com/zexi/influxql-to-metricsql v0.1.0/go.mod h1:JlC5FY+6De9ZPxG47G5DOgva8P9X1VaKS4ExzCmhSCc=
|
||||
github.com/zexi/promql/v2 v2.12.1 h1:crHKpULdLLsBZ9b78Rg6qQkugzlk6BHeCj93tw/F5RU=
|
||||
github.com/zexi/promql/v2 v2.12.1/go.mod h1:2UtzWZGmth95n2qdIZWpJ5yQ0cE5hEvz0dGsajI1Sqg=
|
||||
go.etcd.io/etcd/api/v3 v3.5.0 h1:GsV3S+OfZEOCNXdtNkBSR7kgLobAa/SO6tCxRa0GAYw=
|
||||
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.5.0 h1:2aQv6F436YnN7I4VbI8PPYrBhu+SmrTaADcf8Mi/6PU=
|
||||
@@ -765,8 +807,21 @@ go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.22.4 h1:LYy1Hy3MJdrCdMwwzxA/dRok4ejH+RwNGbuoD9fCjto=
|
||||
go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
|
||||
go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0 h1:P+/g8GpuJGYbOp2tAdKrIPUX9JO02q8Q0YNlHolpibA=
|
||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0/go.mod h1:tIKj3DbO8N9Y2xo52og3irLsPI4GW02DSMtrVgNMgxg=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0 h1:doUP+ExOpH3spVTLS0FcWGLnQrPct/hD/bCPbDRUEAU=
|
||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0/go.mod h1:rdENBZMT2OE6Ne/KLwpiXudnAsbdrdBaqBvTN8M8BgA=
|
||||
go.opentelemetry.io/otel v1.23.0 h1:Df0pqjqExIywbMCMTxkAwzjLZtRf+bBKLbUcpxO2C9E=
|
||||
go.opentelemetry.io/otel v1.23.0/go.mod h1:YCycw9ZeKhcJFrb34iVSkyT0iczq/zYDtZYFufObyB0=
|
||||
go.opentelemetry.io/otel/metric v1.23.0 h1:pazkx7ss4LFVVYSxYew7L5I6qvLXHA0Ap2pwV+9Cnpo=
|
||||
go.opentelemetry.io/otel/metric v1.23.0/go.mod h1:MqUW2X2a6Q8RN96E2/nqNoT+z9BSms20Jb7Bbp+HiTo=
|
||||
go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw=
|
||||
go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc=
|
||||
go.opentelemetry.io/otel/trace v1.23.0 h1:37Ik5Ib7xfYVb4V1UtnT97T1jI+AoIYkJyPkuL4iJgI=
|
||||
go.opentelemetry.io/otel/trace v1.23.0/go.mod h1:GSGTbIClEsuZrGIzoEHqsVfxgn5UkggkflQwDScNUsk=
|
||||
go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
|
||||
go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
|
||||
go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
|
||||
@@ -787,8 +842,9 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
|
||||
golang.org/x/crypto v0.0.0-20201012173705-84dcc777aaee/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
|
||||
golang.org/x/crypto v0.8.0 h1:pd9TJtTueMTVQXzk8E2XESSMQDj/U7OUu0PqJqPXQjQ=
|
||||
golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE=
|
||||
golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
|
||||
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -813,7 +869,6 @@ golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHl
|
||||
golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs=
|
||||
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
|
||||
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
|
||||
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
|
||||
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
|
||||
@@ -826,7 +881,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/net v0.0.0-20180524181706-dfa909b99c79/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@@ -872,15 +926,17 @@ golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qx
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
|
||||
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
|
||||
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
|
||||
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c h1:pkQiBZBvdos9qq4wBAHqlzuZHEXo07pqV06ef90u1WI=
|
||||
golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
|
||||
golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ=
|
||||
golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
@@ -893,8 +949,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
|
||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
|
||||
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
|
||||
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
|
||||
golang.org/x/sys v0.0.0-20180724212812-e072cadbbdc8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
@@ -928,7 +985,6 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -962,14 +1018,15 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
|
||||
golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
|
||||
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ=
|
||||
golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY=
|
||||
golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
|
||||
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
@@ -978,16 +1035,18 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba h1:O8mE0/t419eoIwhTFpKVkHiTs/Igowgfkj25AcZrtiE=
|
||||
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
|
||||
golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
@@ -1038,13 +1097,13 @@ golang.org/x/tools v0.0.0-20201211185031-d93e913c1a58/go.mod h1:emZCQorbCU4vsT4f
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU=
|
||||
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90=
|
||||
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230215201556-9c5414ab4bde h1:ybF7AMzIUikL9x4LgwEmzhXtzRpKNqngme1VGDWz+Nk=
|
||||
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20230215201556-9c5414ab4bde/go.mod h1:mQqgjkW8GQQcJQsbBvK890TKqUK1DfKWkuBGbOkuMHQ=
|
||||
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
|
||||
@@ -1063,16 +1122,18 @@ google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/
|
||||
google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
||||
google.golang.org/api v0.30.0 h1:yfrXXP61wVuLb0vBcG6qaOoIoqYEzOQS8jum51jkv2w=
|
||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
||||
google.golang.org/api v0.167.0 h1:CKHrQD1BLRii6xdkatBDXyKzM0mkawt2QP+H3LtPmSE=
|
||||
google.golang.org/api v0.167.0/go.mod h1:4FcBc686KFi7QI/U51/2GKKevfZMpM17sCdibqe/bSA=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
|
||||
google.golang.org/appengine v1.6.4/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
|
||||
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/appengine v1.6.6 h1:lMO5rYAqUxkmaj76jAkRUvt5JZgFymx/+Q5Mzfivuhc=
|
||||
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
|
||||
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
|
||||
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
|
||||
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
|
||||
@@ -1103,8 +1164,13 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc
|
||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c h1:wtujag7C+4D6KMoulW9YauvK2lgdvCMS260jsqqBXr0=
|
||||
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
|
||||
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y=
|
||||
google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240304161311-37d4d3c04a78 h1:SzXBGiWM1LNVYLCRP3e0/Gsze804l4jGoJ5lYysEO5I=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641 h1:DKU1r6Tj5s1vlU/moGhuGz7E3xRfwjdAfDzbsaQJtEY=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240228224816-df926f6c8641/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
|
||||
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
|
||||
@@ -1119,8 +1185,10 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
|
||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
|
||||
google.golang.org/grpc v1.38.0 h1:/9BgsAsa5nWe26HqOlvlgJnqBuktYOLCgjCPqsa56W0=
|
||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||
google.golang.org/grpc v1.62.0 h1:HQKZ/fa1bXkX1oFOvSjmZEUL8wLSaZTjCcLAlmZRtdk=
|
||||
google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
@@ -1133,8 +1201,8 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj
|
||||
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ=
|
||||
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
|
||||
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
||||
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
|
||||
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
|
||||
@@ -1195,8 +1263,9 @@ k8s.io/cri-api v0.22.17 h1:lUY0gpQXQl1hFDMbuYb+eB94Vu/8QoLKYCb8ACnpAHE=
|
||||
k8s.io/cri-api v0.22.17/go.mod h1:uAw9CICQq20/1yB4ZnWT2TjJyMMROl4typFfWaURLwQ=
|
||||
k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
|
||||
k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE=
|
||||
k8s.io/klog/v2 v2.2.0 h1:XRvcwJozkgZ1UQJmfMGpvRthQHOvihEhYtDfAaxMz/A=
|
||||
k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y=
|
||||
k8s.io/klog/v2 v2.20.0 h1:tlyxlSvd63k7axjhuchckaRJm+a92z5GSOrTOQY5sHw=
|
||||
k8s.io/klog/v2 v2.20.0/go.mod h1:Gm8eSIfQN6457haJuPaMxZw4wyP5k+ykPFlrhQDvhvw=
|
||||
k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o=
|
||||
k8s.io/utils v0.0.0-20200729134348-d5654de09c73 h1:uJmqzgNWG7XyClnU/mLPBWwfKKF1K8Hf8whTseBgJcg=
|
||||
k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA=
|
||||
@@ -1210,13 +1279,13 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK
|
||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240407070842-c86e783a71ae h1:R/PRTt4DaAHTSQh1K6+p131HKt6SRzwLiw5u8TgIB/w=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20240407070842-c86e783a71ae/go.mod h1:dsUESXIbXJ+/ywbNClhldOrbPOiBi2udrgOnB/ffoWk=
|
||||
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32 h1:v7POYkQwo1XzOxBoIoRVr/k0V9Y5JyjpshlIFa9raug=
|
||||
yunion.io/x/executor v0.0.0-20230705125604-c5ac3141db32/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20241231161259-655e77daa48e h1:EzO1fhJG5Mp7mfoVpqzMwesTUNTMD8gHH3blbS6uGRo=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20241231161259-655e77daa48e/go.mod h1:KQ/jWx7bZlmjCE711KEWuvHW/dzpdr/UTlBjjutkj0Y=
|
||||
yunion.io/x/executor v0.0.0-20241205080005-48f5b1212256 h1:kLKQ6zbgPDQflRwoHFAjxNChcbhXIFgsUVLkJwiXu/8=
|
||||
yunion.io/x/executor v0.0.0-20241205080005-48f5b1212256/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
|
||||
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
|
||||
yunion.io/x/jsonutils v1.0.1-0.20240203102553-4096f103b401 h1:4l6ELFSQ0MBVInscZ8/yOtSWF0cwH5BT1ATN6dCtAqc=
|
||||
yunion.io/x/jsonutils v1.0.1-0.20240203102553-4096f103b401/go.mod h1:VK4Z93dgiKgAijcSqbMKmGaBMJuHulR16Hz4K015ZPo=
|
||||
yunion.io/x/jsonutils v1.0.1-0.20240930100528-1671a2d0d22f h1:N7V0uLqX9mED1HEPeIKcYpkWglnHL5hyn4ENX+VBeqM=
|
||||
yunion.io/x/jsonutils v1.0.1-0.20240930100528-1671a2d0d22f/go.mod h1:VK4Z93dgiKgAijcSqbMKmGaBMJuHulR16Hz4K015ZPo=
|
||||
yunion.io/x/log v0.0.0-20190514041436-04ce53b17c6b/go.mod h1:+gauLs73omeJAPlsXcevLsJLKixV+sR/E7WSYTSx1fE=
|
||||
yunion.io/x/log v0.0.0-20190629062853-9f6483a7103d/go.mod h1:LC6f/4FozL0iaAbnFt2eDX9jlsyo3WiOUPm03d7+U4U=
|
||||
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91 h1:inY5o3LDa/zgsIZuPN0HmpzKIsu/lLgsBmMttuDPGj4=
|
||||
@@ -1225,11 +1294,11 @@ yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900 h1:Hu/4ERvoWaN6aiFs4h4/yvVB
|
||||
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900/go.mod h1:0vLkNEhlmA64HViPBAnSTUMrx5QP1CLsxXmxDKQ80tc=
|
||||
yunion.io/x/pkg v0.0.0-20190620104149-945c25821dbf/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
|
||||
yunion.io/x/pkg v0.0.0-20190628082551-f4033ba2ea30/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
|
||||
yunion.io/x/pkg v1.10.1-0.20240407074633-3b5e6127232f h1:5ER9TICQiiLA0klflIRkEuhTUpGaEKaSDKur8BJ96Vg=
|
||||
yunion.io/x/pkg v1.10.1-0.20240407074633-3b5e6127232f/go.mod h1:ksCJVQ+DwKrJ5QBEoU8pzrDFfDaZVAFH/iJ6yQCYxJk=
|
||||
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e h1:v+EzIadodSwkdZ/7bremd7J8J50Cise/HCylsOJngmo=
|
||||
yunion.io/x/s3cli v0.0.0-20190917004522-13ac36d8687e/go.mod h1:0iFKpOs1y4lbCxeOmq3Xx/0AcQoewVPwj62eRluioEo=
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20240326090913-96da8bf92408 h1:TmkgsnVG/KsUfxaFxaYEhQs0o4nXc9fFFlqZv6mwZ/E=
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20240326090913-96da8bf92408/go.mod h1:5W8ghvJ4TNt/r2yDjjD3i4QsZgIiJX45dhRQBGWPHsQ=
|
||||
yunion.io/x/pkg v1.10.2 h1:oZhedvlvDsebIWcOvrOMJQ31SxzjxxqUXUBYseBjh7w=
|
||||
yunion.io/x/pkg v1.10.2/go.mod h1:0Bwxqd9MA3ACi119/l02FprY/o9gHahmYC2bsSbnVpM=
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1 h1:1KJ3YYinydPHpDEQRXdr/T8SYcKZ5Er+m489H+PnaQ4=
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1/go.mod h1:0iFKpOs1y4lbCxeOmq3Xx/0AcQoewVPwj62eRluioEo=
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20240926163039-d41512b264e1 h1:HWPqY1I5JSmM6Sks6FyK9hnq/MjL7FDghM6M8DXHob0=
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20240926163039-d41512b264e1/go.mod h1:vCIZpqhZ5Jzaq3tFyrti/vv8BijQKtkzSgNT/uH4H5A=
|
||||
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c h1:QuLab2kSRECZRxo4Lo2KcYn6XjQFDGaZ1+x0pYDVVwQ=
|
||||
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c/go.mod h1:EP6NSv2C0zzqBDTKumv8hPWLb3XvgMZDHQRfyuOrQng=
|
||||
|
||||
8216
locales/locales.go
8216
locales/locales.go
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,7 @@
|
||||
{
|
||||
"id": "The IDP of user has been disabled or in invalid status",
|
||||
"message": "The IDP of user has been disabled or in invalid status",
|
||||
"translation": ""
|
||||
"translation": "用户已经被禁用或处于不可用状态"
|
||||
},
|
||||
{
|
||||
"id": "invalid credential",
|
||||
@@ -331,11 +331,6 @@
|
||||
"message": "row %d duplicate name %s",
|
||||
"translation": "第%d行,名称重复:%s"
|
||||
},
|
||||
{
|
||||
"id": "template_id",
|
||||
"message": "template_id",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "template not found %s",
|
||||
"message": "template not found %s",
|
||||
@@ -386,11 +381,6 @@
|
||||
"message": "syslog webservice not enabled",
|
||||
"translation": "syslog服务未启用"
|
||||
},
|
||||
{
|
||||
"id": "sync error",
|
||||
"message": "sync error",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "invalid CannedAction %s ",
|
||||
"message": "invalid CannedAction %s ",
|
||||
@@ -616,6 +606,26 @@
|
||||
"message": "invalid redirect_host %s",
|
||||
"translation": "输入的 redirect_host %s 异常"
|
||||
},
|
||||
{
|
||||
"id": "negative tail lines",
|
||||
"message": "negative tail lines",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "limit_bytes must be greater than zero",
|
||||
"message": "limit_bytes must be greater than zero",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "at most one of since_time or since_seconds must be specified",
|
||||
"message": "at most one of since_time or since_seconds must be specified",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "since_seconds must be greater than zero",
|
||||
"message": "since_seconds must be greater than zero",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "missing tags",
|
||||
"message": "missing tags",
|
||||
@@ -672,9 +682,9 @@
|
||||
"translation": "无效的handler:%s"
|
||||
},
|
||||
{
|
||||
"id": "Handler not found",
|
||||
"message": "Handler not found",
|
||||
"translation": "未找到handler"
|
||||
"id": "Handler %s not found",
|
||||
"message": "Handler %s not found",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "No request key: %s",
|
||||
@@ -866,6 +876,16 @@
|
||||
"message": "not enough privilege to do %s:%s:%s (require:%s,allow:%s,query:%s)",
|
||||
"translation": "权限不够 %s:%s:%s (require:%s,allow:%s,query:%s)"
|
||||
},
|
||||
{
|
||||
"id": "only sysadmin can clean history data",
|
||||
"message": "only sysadmin can clean history data",
|
||||
"translation": "只有管理员允许清理历史数据"
|
||||
},
|
||||
{
|
||||
"id": "invalid input json",
|
||||
"message": "invalid input json",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Not support resource %s tag filter",
|
||||
"message": "Not support resource %s tag filter",
|
||||
@@ -891,6 +911,16 @@
|
||||
"message": "Query database error %s",
|
||||
"translation": "数据库查询出错:%s"
|
||||
},
|
||||
{
|
||||
"id": "invalid extra_resource %s",
|
||||
"message": "invalid extra_resource %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "resource %s does not have field %s",
|
||||
"message": "resource %s does not have field %s",
|
||||
"translation": "资源%s没有%s字段"
|
||||
},
|
||||
{
|
||||
"id": "table %s not found",
|
||||
"message": "table %s not found",
|
||||
@@ -1186,6 +1216,181 @@
|
||||
"message": "invalid cert pubkey algorithm: %s, want %s",
|
||||
"translation": "无效的证书算法:%s,要求为%s"
|
||||
},
|
||||
{
|
||||
"id": "host is nil",
|
||||
"message": "host is nil",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "host_path is empty",
|
||||
"message": "host_path is empty",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "container_path is empty",
|
||||
"message": "container_path is empty",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "permissions is empty",
|
||||
"message": "permissions is empty",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "wrong permission %s",
|
||||
"message": "wrong permission %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "isolated_device is nil",
|
||||
"message": "isolated_device is nil",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "one of index or id is required",
|
||||
"message": "one of index or id is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "index is less than 0",
|
||||
"message": "index is less than 0",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "can't specify id %s when creating pod",
|
||||
"message": "can't specify id %s when creating pod",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "index is required",
|
||||
"message": "index is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "disk.index %d is large than disk size %d",
|
||||
"message": "disk.index %d is large than disk size %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "index %d is large than isolated device size %d",
|
||||
"message": "index %d is large than isolated device size %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "id is empty",
|
||||
"message": "id is empty",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "device type %s is not supported by container",
|
||||
"message": "device type %s is not supported by container",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "not found pod device by %s",
|
||||
"message": "not found pod device by %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "exec field",
|
||||
"message": "exec field",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "command is required",
|
||||
"message": "command is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "disk is nil",
|
||||
"message": "disk is nil",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "disk.id is empty",
|
||||
"message": "disk.id is empty",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "not found pod disk by %s",
|
||||
"message": "not found pod disk by %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "can't specify disk_id %s when creating pod",
|
||||
"message": "can't specify disk_id %s when creating pod",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "disk.index is required",
|
||||
"message": "disk.index is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "disk.index %d is less than 0",
|
||||
"message": "disk.index %d is less than 0",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "valid overlay %v",
|
||||
"message": "valid overlay %v",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "invalid overlay input: %v",
|
||||
"message": "invalid overlay input: %v",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "lower_dir is required",
|
||||
"message": "lower_dir is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "empty %d dir",
|
||||
"message": "empty %d dir",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "can't use '/' as lower_dir",
|
||||
"message": "can't use '/' as lower_dir",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "disk %s must have template_id",
|
||||
"message": "disk %s must have template_id",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "disk %#v must have image_id",
|
||||
"message": "disk %#v must have image_id",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "host_path is nil",
|
||||
"message": "host_path is nil",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "unsupported type %s",
|
||||
"message": "unsupported type %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "path is required",
|
||||
"message": "path is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "content",
|
||||
"message": "content",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "text is nil",
|
||||
"message": "text is nil",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "cannot support more than 1 nic",
|
||||
"message": "cannot support more than 1 nic",
|
||||
@@ -1241,6 +1446,11 @@
|
||||
"message": "Invalid raid config: %v",
|
||||
"translation": "无效的RAID配置:%v"
|
||||
},
|
||||
{
|
||||
"id": "Invalid root disk matcher: %v",
|
||||
"message": "Invalid root disk matcher: %v",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Host %s is not a baremetal",
|
||||
"message": "Host %s is not a baremetal",
|
||||
@@ -1274,7 +1484,7 @@
|
||||
{
|
||||
"id": "Memory size %q must be number[+unit], like 256M, 1G or 256",
|
||||
"message": "Memory size %q must be number[+unit], like 256M, 1G or 256",
|
||||
"translation": ""
|
||||
"translation": "内存大小%q必须是数字或数字单位组合, 例如 256M, 1G 或者 256"
|
||||
},
|
||||
{
|
||||
"id": "Params vmem_size parse error",
|
||||
@@ -1292,24 +1502,14 @@
|
||||
"translation": "不能缩小第%d块磁盘大小"
|
||||
},
|
||||
{
|
||||
"id": "Cann't online resize root disk",
|
||||
"message": "Cann't online resize root disk",
|
||||
"translation": "不支持在线扩容系统盘"
|
||||
"id": "CloudpodsBaremetal %s is not ready",
|
||||
"message": "CloudpodsBaremetal %s is not ready",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Cannot resize disk when guest in status %s",
|
||||
"message": "Cannot resize disk when guest in status %s",
|
||||
"translation": "实例状态为%s时不支持扩容磁盘"
|
||||
},
|
||||
{
|
||||
"id": "Not supported, please use kubectl",
|
||||
"message": "Not supported, please use kubectl",
|
||||
"translation": "不支持此操作,请使用kubectl"
|
||||
},
|
||||
{
|
||||
"id": "Container not support %s",
|
||||
"message": "Container not support %s",
|
||||
"translation": "容器不支持%s"
|
||||
"id": "CloudpodsBaremetal %s is occupied",
|
||||
"message": "CloudpodsBaremetal %s is occupied",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "The number of cpu sockets cannot be greater than the number of cpus",
|
||||
@@ -1331,6 +1531,16 @@
|
||||
"message": "can't rebuild root for a guest with instance snapshots",
|
||||
"translation": "无法为有主机快照的虚拟机重装系统"
|
||||
},
|
||||
{
|
||||
"id": "Cann't online resize root disk",
|
||||
"message": "Cann't online resize root disk",
|
||||
"translation": "不支持在线扩容系统盘"
|
||||
},
|
||||
{
|
||||
"id": "Cannot resize disk when guest in status %s",
|
||||
"message": "Cannot resize disk when guest in status %s",
|
||||
"translation": "实例状态为%s时不支持扩容磁盘"
|
||||
},
|
||||
{
|
||||
"id": "Unknown google storage type %s",
|
||||
"message": "Unknown google storage type %s",
|
||||
@@ -1364,7 +1574,7 @@
|
||||
{
|
||||
"id": "the host %s loses its ip address",
|
||||
"message": "the host %s loses its ip address",
|
||||
"translation": ""
|
||||
"translation": "宿主机%s丢失IP地址"
|
||||
},
|
||||
{
|
||||
"id": "Host %s not found",
|
||||
@@ -1476,6 +1686,61 @@
|
||||
"message": "data disk not support storage type %s",
|
||||
"translation": "数据盘不支持存储类型%s"
|
||||
},
|
||||
{
|
||||
"id": "Container not support %s",
|
||||
"message": "Container not support %s",
|
||||
"translation": "容器不支持%s"
|
||||
},
|
||||
{
|
||||
"id": "not support format %s for disk %d",
|
||||
"message": "not support format %s for disk %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "pod data is empty",
|
||||
"message": "pod data is empty",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "containers data is empty",
|
||||
"message": "containers data is empty",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "type is required",
|
||||
"message": "type is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "mount_path is required",
|
||||
"message": "mount_path is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "port range start %d is large than %d",
|
||||
"message": "port range start %d is large than %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "port range start %d \u003c= %d",
|
||||
"message": "port range start %d \u003c= %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "port range end %d \u003e %d",
|
||||
"message": "port range end %d \u003e %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "port number %d isn't within %d to %d",
|
||||
"message": "port number %d isn't within %d to %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "unsupported protocol %s",
|
||||
"message": "unsupported protocol %s",
|
||||
"translation": "不支持%s协议"
|
||||
},
|
||||
{
|
||||
"id": "The %s disk size must be in the range of 10GB ~ 16000GB",
|
||||
"message": "The %s disk size must be in the range of 10GB ~ 16000GB",
|
||||
@@ -1617,9 +1882,9 @@
|
||||
"translation": "磁盘必须已解绑"
|
||||
},
|
||||
{
|
||||
"id": "not supported",
|
||||
"message": "not supported",
|
||||
"translation": ""
|
||||
"id": "not supported resize disk",
|
||||
"message": "not supported resize disk",
|
||||
"translation": "不支持扩容磁盘"
|
||||
},
|
||||
{
|
||||
"id": "%s is not mount point %s",
|
||||
@@ -1684,11 +1949,11 @@
|
||||
{
|
||||
"id": "can not reset with disk associate with guests",
|
||||
"message": "can not reset with disk associate with guests",
|
||||
"translation": ""
|
||||
"translation": "不允许挂载中的磁盘重置"
|
||||
},
|
||||
{
|
||||
"id": "Qcloud reset disk required guest status is running or read",
|
||||
"message": "Qcloud reset disk required guest status is running or read",
|
||||
"id": "Qcloud reset disk required guest status is running or ready",
|
||||
"message": "Qcloud reset disk required guest status is running or ready",
|
||||
"translation": "腾讯云重置磁盘要求虚机状态必须是运行中或已关机"
|
||||
},
|
||||
{
|
||||
@@ -1702,8 +1967,8 @@
|
||||
"translation": "Ucloud仅支持数据盘重置操作"
|
||||
},
|
||||
{
|
||||
"id": "Volcengine reset disk required guest status is running or read",
|
||||
"message": "Volcengine reset disk required guest status is running or read",
|
||||
"id": "Volcengine reset disk required guest status is running or ready",
|
||||
"message": "Volcengine reset disk required guest status is running or ready",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
@@ -1769,7 +2034,7 @@
|
||||
{
|
||||
"id": "WebApp has %d task active, can't sync status",
|
||||
"message": "WebApp has %d task active, can't sync status",
|
||||
"translation": ""
|
||||
"translation": "应用程序有%d个任务进行中,请稍后进行同步状态"
|
||||
},
|
||||
{
|
||||
"id": "Invalid storage type %s",
|
||||
@@ -2104,17 +2369,12 @@
|
||||
{
|
||||
"id": "%s not support cdn",
|
||||
"message": "%s not support cdn",
|
||||
"translation": ""
|
||||
"translation": "%s不支持CDN"
|
||||
},
|
||||
{
|
||||
"id": "CDN domain has %d task active, can't sync status",
|
||||
"message": "CDN domain has %d task active, can't sync status",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "account %s not enable saml auth",
|
||||
"message": "account %s not enable saml auth",
|
||||
"translation": "云账号%s为启用SAML认证"
|
||||
"translation": "CDN已有%d个任务进行中,请稍后再试"
|
||||
},
|
||||
{
|
||||
"id": "account is enabled",
|
||||
@@ -2191,11 +2451,6 @@
|
||||
"message": "Account disabled",
|
||||
"translation": "账号已禁用"
|
||||
},
|
||||
{
|
||||
"id": "Account is not idle",
|
||||
"message": "Account is not idle",
|
||||
"translation": "账号正在同步中,稍后再试"
|
||||
},
|
||||
{
|
||||
"id": "Unable to synchronize frequently",
|
||||
"message": "Unable to synchronize frequently",
|
||||
@@ -2351,6 +2606,71 @@
|
||||
"message": "Cannot update external resource",
|
||||
"translation": "不允许更新外部资源"
|
||||
},
|
||||
{
|
||||
"id": "not found driver by type %q",
|
||||
"message": "not found driver by type %q",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "guest_id is required",
|
||||
"message": "guest_id is required",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "invalid image_pull_policy %s",
|
||||
"message": "invalid image_pull_policy %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "/dev/shm size is small than 64MB",
|
||||
"message": "/dev/shm size is small than 64MB",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "get lifecycle driver: %v",
|
||||
"message": "get lifecycle driver: %v",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "get device driver: %v",
|
||||
"message": "get device driver: %v",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "current status %s is not %s",
|
||||
"message": "current status %s is not %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Can't start container in status %s",
|
||||
"message": "Can't start container in status %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Can't stop container in status %s",
|
||||
"message": "Can't stop container in status %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Can't save volume disk of container in status %s",
|
||||
"message": "Can't save volume disk of container in status %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Can't save volume disk of pod in status %s",
|
||||
"message": "Can't save volume disk of pod in status %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Only %d volume_mounts",
|
||||
"message": "Only %d volume_mounts",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Can't exec container in status %s",
|
||||
"message": "Can't exec container in status %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "not allow update rds account name",
|
||||
"message": "not allow update rds account name",
|
||||
@@ -2606,6 +2926,11 @@
|
||||
"message": "can't backup guest to backup storage with status %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "fetch container by %s",
|
||||
"message": "fetch container by %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "not support update disk_type %s",
|
||||
"message": "not support update disk_type %s",
|
||||
@@ -2616,11 +2941,6 @@
|
||||
"message": "failed to find storage for disk %s",
|
||||
"translation": "找不到磁盘%s对应的存储"
|
||||
},
|
||||
{
|
||||
"id": "failed to find host for storage %s with disk %s",
|
||||
"message": "failed to find host for storage %s with disk %s",
|
||||
"translation": "无法为存储%s和磁盘%s找不到对应的宿主机"
|
||||
},
|
||||
{
|
||||
"id": "disk create from existing disk must give storage",
|
||||
"message": "disk create from existing disk must give storage",
|
||||
@@ -2636,11 +2956,6 @@
|
||||
"message": "cloudprovider %s not available",
|
||||
"translation": "云订阅 %s 不可用"
|
||||
},
|
||||
{
|
||||
"id": "storage %s(%s) need online and attach host for create disk",
|
||||
"message": "storage %s(%s) need online and attach host for create disk",
|
||||
"translation": "存储%s(%s)需挂载到宿主机达到在线状态"
|
||||
},
|
||||
{
|
||||
"id": "Cannot create disk with disabled storage[%s]",
|
||||
"message": "Cannot create disk with disabled storage[%s]",
|
||||
@@ -2671,31 +2986,6 @@
|
||||
"message": "Not enough free space",
|
||||
"translation": "空闲空间不够"
|
||||
},
|
||||
{
|
||||
"id": "Fetch snapshot count failed %s",
|
||||
"message": "Fetch snapshot count failed %s",
|
||||
"translation": "获取快照数失败:%s"
|
||||
},
|
||||
{
|
||||
"id": "Disk %s don't need convert snapshots",
|
||||
"message": "Disk %s don't need convert snapshots",
|
||||
"translation": "磁盘%s不需要转换快照"
|
||||
},
|
||||
{
|
||||
"id": "Can not get disk snapshot",
|
||||
"message": "Can not get disk snapshot",
|
||||
"translation": "无法获得磁盘快照"
|
||||
},
|
||||
{
|
||||
"id": "Get convert snapshot failed: %s",
|
||||
"message": "Get convert snapshot failed: %s",
|
||||
"translation": "获取转换快照对象失败:%s"
|
||||
},
|
||||
{
|
||||
"id": "Snapshot %s dose not have convert snapshot",
|
||||
"message": "Snapshot %s dose not have convert snapshot",
|
||||
"translation": "快照%s没有转换快照对象"
|
||||
},
|
||||
{
|
||||
"id": "Cannot reset disk in status %s",
|
||||
"message": "Cannot reset disk in status %s",
|
||||
@@ -2711,6 +3001,16 @@
|
||||
"message": "Cannot reset disk %s(%s),Snapshot is belong to disk %s",
|
||||
"translation": "无法重置磁盘%s(%s),因快照属于磁盘%s"
|
||||
},
|
||||
{
|
||||
"id": "Disk attached guest, cannot migrate",
|
||||
"message": "Disk attached guest, cannot migrate",
|
||||
"translation": "磁盘已挂载,不支持迁移"
|
||||
},
|
||||
{
|
||||
"id": "Cannot migrate disk from storage type %s to %s",
|
||||
"message": "Cannot migrate disk from storage type %s to %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Resize disk when disk is READY",
|
||||
"message": "Resize disk when disk is READY",
|
||||
@@ -2731,16 +3031,16 @@
|
||||
"message": "disk.GetQuotaKeys fail %s",
|
||||
"translation": "disk.GetQuotaKeys失败:%s"
|
||||
},
|
||||
{
|
||||
"id": "No zone for this disk",
|
||||
"message": "No zone for this disk",
|
||||
"translation": "该磁盘没有zone信息"
|
||||
},
|
||||
{
|
||||
"id": "Duplicate image name %s",
|
||||
"message": "Duplicate image name %s",
|
||||
"translation": "重复的镜像名%s"
|
||||
},
|
||||
{
|
||||
"id": "No zone for this disk",
|
||||
"message": "No zone for this disk",
|
||||
"translation": "该磁盘没有zone信息"
|
||||
},
|
||||
{
|
||||
"id": "Save disk when disk is READY",
|
||||
"message": "Save disk when disk is READY",
|
||||
@@ -2846,6 +3146,11 @@
|
||||
"message": "The snapshot policy %s and the disk are in different region",
|
||||
"translation": "自动快照策略%s与磁盘所在的区域不匹配"
|
||||
},
|
||||
{
|
||||
"id": "Guest %s status is %s",
|
||||
"message": "Guest %s status is %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "invalid record name %s",
|
||||
"message": "invalid record name %s",
|
||||
@@ -3214,7 +3519,7 @@
|
||||
{
|
||||
"id": "loadbalancer is already associated with eip",
|
||||
"message": "loadbalancer is already associated with eip",
|
||||
"translation": ""
|
||||
"translation": "负载均衡已绑定弹性公网IP"
|
||||
},
|
||||
{
|
||||
"id": "eip cannot dissociate in status %s",
|
||||
@@ -3336,11 +3641,6 @@
|
||||
"message": "Cannot send command in status %s",
|
||||
"translation": "状态为%s时无法发送命令"
|
||||
},
|
||||
{
|
||||
"id": "No host for server",
|
||||
"message": "No host for server",
|
||||
"translation": "无法找到虚机所在宿主机"
|
||||
},
|
||||
{
|
||||
"id": "Cannot save image in status %s",
|
||||
"message": "Cannot save image in status %s",
|
||||
@@ -3384,7 +3684,7 @@
|
||||
{
|
||||
"id": "cannot clone encrypted server",
|
||||
"message": "cannot clone encrypted server",
|
||||
"translation": ""
|
||||
"translation": "不支持克隆加密虚拟机"
|
||||
},
|
||||
{
|
||||
"id": "Can't clone guest with backup guest",
|
||||
@@ -3411,6 +3711,11 @@
|
||||
"message": "update keypairId %v",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "login_account is longer than 32 chars",
|
||||
"message": "login_account is longer than 32 chars",
|
||||
"translation": "login_account长度已超过32字节"
|
||||
},
|
||||
{
|
||||
"id": "Cannot deploy in status %s",
|
||||
"message": "Cannot deploy in status %s",
|
||||
@@ -3524,7 +3829,7 @@
|
||||
{
|
||||
"id": "Floppy not empty, please eject first",
|
||||
"message": "Floppy not empty, please eject first",
|
||||
"translation": ""
|
||||
"translation": "软盘已挂载,请先卸载"
|
||||
},
|
||||
{
|
||||
"id": "No VFD to eject",
|
||||
@@ -3652,9 +3957,9 @@
|
||||
"translation": "获取GPU失败:%s"
|
||||
},
|
||||
{
|
||||
"id": "guest %s host %s isolated device not enough",
|
||||
"message": "guest %s host %s isolated device not enough",
|
||||
"translation": "虚机%s所在宿主机%s透传设备不足"
|
||||
"id": "require %d %s isolated device of host %s is not enough",
|
||||
"message": "require %d %s isolated device of host %s is not enough",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Can't separately attach dev type %s",
|
||||
@@ -4089,7 +4394,7 @@
|
||||
{
|
||||
"id": "invalid IPv4 address %s",
|
||||
"message": "invalid IPv4 address %s",
|
||||
"translation": ""
|
||||
"translation": "不正确的IPv4地址 %s"
|
||||
},
|
||||
{
|
||||
"id": "Unreachable IP %s: %s",
|
||||
@@ -4196,11 +4501,6 @@
|
||||
"message": "guest can't do snapshot in status %s",
|
||||
"translation": "虚机状态为%s无法做快照"
|
||||
},
|
||||
{
|
||||
"id": "guests disk %d snapshot full, can't take anymore",
|
||||
"message": "guests disk %d snapshot full, can't take anymore",
|
||||
"translation": "虚机%d号磁盘快照数达到上限,不可再创建"
|
||||
},
|
||||
{
|
||||
"id": "Check set pending quota error %s",
|
||||
"message": "Check set pending quota error %s",
|
||||
@@ -4406,11 +4706,21 @@
|
||||
"message": "guest status must be ready",
|
||||
"translation": "虚机必须为关机状态"
|
||||
},
|
||||
{
|
||||
"id": "input network configs length must equal guestnetworks length",
|
||||
"message": "input network configs length must equal guestnetworks length",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "input network configs length must equal guestnetworks length",
|
||||
"message": "input network configs length must equal guestnetworks length",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "missing guest ids",
|
||||
"message": "missing guest ids",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Cannot rescue guest hypervisor %s",
|
||||
"message": "Cannot rescue guest hypervisor %s",
|
||||
@@ -4664,7 +4974,7 @@
|
||||
{
|
||||
"id": "hostname should be a legal domain name",
|
||||
"message": "hostname should be a legal domain name",
|
||||
"translation": ""
|
||||
"translation": "主机名必须是合法的域名"
|
||||
},
|
||||
{
|
||||
"id": "can't find instance snapshot %s",
|
||||
@@ -4706,11 +5016,6 @@
|
||||
"message": "metdata must less then 20",
|
||||
"translation": "metadata条目数不可超过20"
|
||||
},
|
||||
{
|
||||
"id": "login_account is longer than 32 chars",
|
||||
"message": "login_account is longer than 32 chars",
|
||||
"translation": "login_account长度已超过32字节"
|
||||
},
|
||||
{
|
||||
"id": "No bootable disk information provided",
|
||||
"message": "No bootable disk information provided",
|
||||
@@ -4954,7 +5259,7 @@
|
||||
{
|
||||
"id": "hostname cannot be number %d",
|
||||
"message": "hostname cannot be number %d",
|
||||
"translation": ""
|
||||
"translation": "主机名不能是数字%d"
|
||||
},
|
||||
{
|
||||
"id": "Windows hostname cannot be longer than %d characters",
|
||||
@@ -4971,11 +5276,6 @@
|
||||
"message": "Schedtag %s not found",
|
||||
"translation": "找不到调度标签"
|
||||
},
|
||||
{
|
||||
"id": "not supported hypervisor %s",
|
||||
"message": "not supported hypervisor %s",
|
||||
"translation": "不支持hypervisor %s"
|
||||
},
|
||||
{
|
||||
"id": "Host is a converted baremetal, should be unconverted before delete",
|
||||
"message": "Host is a converted baremetal, should be unconverted before delete",
|
||||
@@ -5346,11 +5646,6 @@
|
||||
"message": "require system previleges to convert host in other domain",
|
||||
"translation": "转换其它域的宿主机需要系统权限"
|
||||
},
|
||||
{
|
||||
"id": "Unsupport driver type %s",
|
||||
"message": "Unsupport driver type %s",
|
||||
"translation": "不支持驱动%s"
|
||||
},
|
||||
{
|
||||
"id": "isAlterNameUnique fail %s",
|
||||
"message": "isAlterNameUnique fail %s",
|
||||
@@ -6156,11 +6451,6 @@
|
||||
"message": "input ip mac conflict with guest %s nic %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "cannot fetch network of guestnetwork %d",
|
||||
"message": "cannot fetch network of guestnetwork %d",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "allocate ip addr: %v",
|
||||
"message": "allocate ip addr: %v",
|
||||
@@ -6186,11 +6476,6 @@
|
||||
"message": "Out of IP address",
|
||||
"translation": "找不到可用IP地址"
|
||||
},
|
||||
{
|
||||
"id": "candidate %s out of range",
|
||||
"message": "candidate %s out of range",
|
||||
"translation": "候选IP %s不在范围内"
|
||||
},
|
||||
{
|
||||
"id": "no allow to access network %s",
|
||||
"message": "no allow to access network %s",
|
||||
@@ -6261,6 +6546,11 @@
|
||||
"message": "network %s(%s) has no free addresses",
|
||||
"translation": "子网%s(%s)已没有可用地址"
|
||||
},
|
||||
{
|
||||
"id": "invalid ip or prefix %s",
|
||||
"message": "invalid ip or prefix %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "Duration %s invalid",
|
||||
"message": "Duration %s invalid",
|
||||
@@ -7361,6 +7651,11 @@
|
||||
"message": "not empty zone: %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "contains %d networks",
|
||||
"message": "contains %d networks",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "failed to found cloudregion %s",
|
||||
"message": "failed to found cloudregion %s",
|
||||
@@ -7816,6 +8111,11 @@
|
||||
"message": "bad network type %q, want %q",
|
||||
"translation": "无效的子网类型%q,期望%q"
|
||||
},
|
||||
{
|
||||
"id": "candidate %s out of range",
|
||||
"message": "candidate %s out of range",
|
||||
"translation": "候选IP %s不在范围内"
|
||||
},
|
||||
{
|
||||
"id": "requested ip %s is occupied!",
|
||||
"message": "requested ip %s is occupied!",
|
||||
@@ -7976,11 +8276,6 @@
|
||||
"message": "Snapshot reference(by disk) count \u003e 0, can not delete",
|
||||
"translation": "快照正被磁盘使用,无法删除"
|
||||
},
|
||||
{
|
||||
"id": "disk need at least one of snapshot as backing file",
|
||||
"message": "disk need at least one of snapshot as backing file",
|
||||
"translation": "磁盘需要至少1个快照作为后备文件"
|
||||
},
|
||||
{
|
||||
"id": "Disk %s dosen't attach guest ?",
|
||||
"message": "Disk %s dosen't attach guest ?",
|
||||
@@ -7997,20 +8292,20 @@
|
||||
"translation": "虚机状态为%s时无法创建快照"
|
||||
},
|
||||
{
|
||||
"id": "check disk snapshot count fail %s",
|
||||
"message": "check disk snapshot count fail %s",
|
||||
"translation": "检查磁盘快照数时出错:%s"
|
||||
},
|
||||
{
|
||||
"id": "Disk %s snapshot full, cannot take any more",
|
||||
"message": "Disk %s snapshot full, cannot take any more",
|
||||
"translation": "磁盘%s快照数满,不可再创建"
|
||||
"id": "This CLVM Storage[%s/%s] has already exist",
|
||||
"message": "This CLVM Storage[%s/%s] has already exist",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "This RBD Storage[%s/%s] has already exist",
|
||||
"message": "This RBD Storage[%s/%s] has already exist",
|
||||
"translation": "RBD存储%s(%s)已存在"
|
||||
},
|
||||
{
|
||||
"id": "This SLVM Storage[%s/%s] has already exist",
|
||||
"message": "This SLVM Storage[%s/%s] has already exist",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "start_date should befor end_date",
|
||||
"message": "start_date should befor end_date",
|
||||
@@ -8976,6 +9271,16 @@
|
||||
"message": "unsupported action %s",
|
||||
"translation": "不支持的动作%s"
|
||||
},
|
||||
{
|
||||
"id": "container_id",
|
||||
"message": "container_id",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "not found guest_id from container %s",
|
||||
"message": "not found guest_id from container %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "cluster system-default no id",
|
||||
"message": "cluster system-default no id",
|
||||
@@ -9146,6 +9451,11 @@
|
||||
"message": "Cannot delete system alert",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "invalid operator %s",
|
||||
"message": "invalid operator %s",
|
||||
"translation": ""
|
||||
},
|
||||
{
|
||||
"id": "threshold:%s should be number type",
|
||||
"message": "threshold:%s should be number type",
|
||||
@@ -9407,4 +9717,4 @@
|
||||
"translation": "权限定义正被使用"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,3 +45,8 @@ func SetupTest() {
|
||||
key, _ := rsa.GenerateKey(rand.Reader, 2048)
|
||||
setPrivateKey(key)
|
||||
}
|
||||
|
||||
type SApigatewayApi struct {
|
||||
Id string
|
||||
Name string
|
||||
}
|
||||
|
||||
@@ -34,7 +34,6 @@ import (
|
||||
"yunion.io/x/onecloud/pkg/apigateway/options"
|
||||
policytool "yunion.io/x/onecloud/pkg/apigateway/policy"
|
||||
agapi "yunion.io/x/onecloud/pkg/apis/apigateway"
|
||||
"yunion.io/x/onecloud/pkg/apis/compute"
|
||||
"yunion.io/x/onecloud/pkg/appsrv"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/policy"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
@@ -1070,25 +1069,6 @@ func getUserInfo2(s *mcclient.ClientSession, uid string, pid string, loginIp str
|
||||
menus.Add(item)
|
||||
}
|
||||
|
||||
log.Infof("getUserInfo modules.Hosts.Get")
|
||||
// s2 := auth.GetSession(ctx, token, FetchRegion(req), "v2")
|
||||
params := jsonutils.NewDict()
|
||||
params.Add(jsonutils.NewString("host_type"), "field")
|
||||
params.Add(jsonutils.NewString("system"), "scope")
|
||||
params.Add(jsonutils.JSONTrue, "usable")
|
||||
params.Add(jsonutils.JSONTrue, "show_emulated")
|
||||
cap, err := compute_modules.Hosts.Get(s, "distinct-field", params)
|
||||
if err != nil {
|
||||
log.Errorf("modules.Servers.Get distinct-field fail %s", err)
|
||||
} else {
|
||||
hostTypes, _ := jsonutils.GetStringArray(cap, "host_type")
|
||||
hypervisors := make([]string, len(hostTypes))
|
||||
for i, hostType := range hostTypes {
|
||||
hypervisors[i] = compute.HOSTTYPE_HYPERVISOR[hostType]
|
||||
}
|
||||
data.Add(jsonutils.NewStringArray(hypervisors), "hypervisors")
|
||||
}
|
||||
|
||||
data.Add(menus, "menus")
|
||||
data.Add(k8s, "k8sdashboard")
|
||||
data.Add(services, "services")
|
||||
|
||||
@@ -108,6 +108,8 @@ func (h *MiscHandler) Bind(app *appsrv.Application) {
|
||||
// syslog webservice handlers
|
||||
app.AddHandler(POST, prefix+"syslog/token", handleSyslogWebServiceToken)
|
||||
app.AddHandler(POST, prefix+"syslog/message", handleSyslogWebServiceMessage)
|
||||
// service settings
|
||||
app.AddHandler(GET, prefix+"service_settings", h.getServiceSettings)
|
||||
}
|
||||
|
||||
func UploadHandlerInfo(method, prefix string, handler func(context.Context, http.ResponseWriter, *http.Request)) *appsrv.SHandlerInfo {
|
||||
@@ -460,7 +462,7 @@ func (mh *MiscHandler) getDownloadsHandler(ctx context.Context, w http.ResponseW
|
||||
params := appctx.AppContextParams(ctx)
|
||||
template, ok := params["<template_id>"]
|
||||
if !ok || len(template) == 0 {
|
||||
httperrors.InvalidInputError(ctx, w, "template_id")
|
||||
httperrors.MissingParameterError(ctx, w, "template_id")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -644,12 +644,13 @@ func (f *ResourceHandlers) updateJointHandler(ctx context.Context, w http.Respon
|
||||
session := req.Session()
|
||||
module := req.Mod1()
|
||||
module2 := req.Mod2()
|
||||
query := req.Query()
|
||||
body := req.Body()
|
||||
|
||||
jmod, e := modulebase.GetJointModule2(session, module, module2)
|
||||
var obj jsonutils.JSONObject
|
||||
if e == nil { // update joint
|
||||
obj, e = jmod.Update(session, req.ResID(), req.ResID2(), nil, body)
|
||||
obj, e = jmod.Update(session, req.ResID(), req.ResID2(), query, body)
|
||||
} else { // update in context
|
||||
obj, e = module2.PutInContext(session, req.ResID2(), body, module, req.ResID())
|
||||
}
|
||||
@@ -669,12 +670,13 @@ func (f *ResourceHandlers) patchJointHandler(ctx context.Context, w http.Respons
|
||||
session := req.Session()
|
||||
module := req.Mod1()
|
||||
module2 := req.Mod2()
|
||||
query := req.Query()
|
||||
body := req.Body()
|
||||
|
||||
jmod, e := modulebase.GetJointModule2(session, module, module2)
|
||||
var obj jsonutils.JSONObject
|
||||
if e == nil { // update joint
|
||||
obj, e = jmod.Patch(session, req.ResID(), req.ResID2(), nil, body)
|
||||
obj, e = jmod.Patch(session, req.ResID(), req.ResID2(), query, body)
|
||||
} else { // update in context
|
||||
obj, e = module2.PatchInContext(session, req.ResID2(), body, module, req.ResID())
|
||||
}
|
||||
|
||||
81
pkg/apigateway/handler/service_setting.go
Normal file
81
pkg/apigateway/handler/service_setting.go
Normal file
@@ -0,0 +1,81 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package handler
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/appsrv"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/auth"
|
||||
"yunion.io/x/onecloud/pkg/mcclient/modules/identity"
|
||||
)
|
||||
|
||||
var settingNames = map[string][]string{
|
||||
"identity": []string{"no_action_logout_seconds"},
|
||||
"yunionapi": []string{"enable_organization"},
|
||||
"image": []string{"enable_pending_delete"},
|
||||
"compute_v2": []string{"enable_pending_delete"},
|
||||
"meter": []string{"cost_conversion_available", "enable_prediction", "share_resource_type"},
|
||||
"common": []string{"api_server", "enable_quota_check", "enable_watermark", "enable_cloud_shell"},
|
||||
}
|
||||
|
||||
func (mh *MiscHandler) getServiceSettings(ctx context.Context, w http.ResponseWriter, req *http.Request) {
|
||||
s := auth.GetAdminSession(ctx, FetchRegion(req))
|
||||
types := []string{}
|
||||
for typ := range settingNames {
|
||||
types = append(types, typ)
|
||||
}
|
||||
params := map[string]interface{}{
|
||||
"limit": 20,
|
||||
"scope": "system",
|
||||
"type": types,
|
||||
}
|
||||
resp, err := identity.ServicesV3.List(s, jsonutils.Marshal(params))
|
||||
if err != nil {
|
||||
e := httperrors.NewInternalServerError(err.Error())
|
||||
httperrors.JsonClientError(ctx, w, e)
|
||||
return
|
||||
}
|
||||
services := []struct {
|
||||
Id string
|
||||
Type string
|
||||
}{}
|
||||
err = jsonutils.Update(&services, resp.Data)
|
||||
if err != nil {
|
||||
e := httperrors.NewInternalServerError(err.Error())
|
||||
httperrors.JsonClientError(ctx, w, e)
|
||||
return
|
||||
}
|
||||
result := map[string]map[string]interface{}{}
|
||||
for _, service := range services {
|
||||
result[service.Type] = map[string]interface{}{}
|
||||
data, err := identity.ServicesV3.GetSpecific(s, service.Id, "config", nil)
|
||||
if err != nil {
|
||||
e := httperrors.NewInternalServerError(err.Error())
|
||||
httperrors.JsonClientError(ctx, w, e)
|
||||
return
|
||||
}
|
||||
names, _ := settingNames[service.Type]
|
||||
for _, name := range names {
|
||||
v, _ := data.Get("config", "default", name)
|
||||
result[service.Type][name] = v
|
||||
}
|
||||
}
|
||||
appsrv.SendJSON(w, jsonutils.Marshal(result))
|
||||
}
|
||||
@@ -21,6 +21,9 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/client-go/rest"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/log"
|
||||
"yunion.io/x/pkg/errors"
|
||||
@@ -75,9 +78,11 @@ type sReport struct {
|
||||
}
|
||||
|
||||
const (
|
||||
RUNNING_ENV_KUBERNETES = "kubernetes"
|
||||
RUNNING_ENV_DOCKER_COMPOSE = "docker-compose"
|
||||
RUNNING_ENV_UNKNOWN = "unknown"
|
||||
RUNNING_ENV_KUBERNETES = "kubernetes"
|
||||
RUNNING_ENV_K3S = "k3s"
|
||||
RUNNING_ENV_DOCKER_COMPOSE = "docker-compose"
|
||||
RUNNING_ENV_DOCKER_COMPOSE_BAREMETAL = "docker-compose-baremetal"
|
||||
RUNNING_ENV_UNKNOWN = "unknown"
|
||||
)
|
||||
|
||||
func isInsideDockerCompose() bool {
|
||||
@@ -117,12 +122,48 @@ func isInsideKubernetes() bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func getK8sVersion() (string, error) {
|
||||
cfg, err := rest.InClusterConfig()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get k8s config")
|
||||
}
|
||||
client, err := kubernetes.NewForConfig(cfg)
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get k8s client")
|
||||
}
|
||||
ver, err := client.ServerVersion()
|
||||
if err != nil {
|
||||
return "", errors.Wrap(err, "get k8s version")
|
||||
}
|
||||
return ver.String(), nil
|
||||
}
|
||||
|
||||
func getRunningEnv() string {
|
||||
if isInsideKubernetes() {
|
||||
ver, err := getK8sVersion()
|
||||
if err != nil {
|
||||
log.Errorf("get k8s version: %v", err)
|
||||
}
|
||||
if strings.Contains(ver, "k3s") {
|
||||
return RUNNING_ENV_K3S
|
||||
}
|
||||
return RUNNING_ENV_KUBERNETES
|
||||
}
|
||||
|
||||
if isInsideDockerCompose() {
|
||||
// list agent to check whether we're running baremetal agent
|
||||
s := auth.GetAdminSession(context.Background(), options.Options.Region)
|
||||
ret, err := compute.Baremetalagents.List(s, nil)
|
||||
if err != nil {
|
||||
log.Warningf("list agents error: %s", err)
|
||||
return RUNNING_ENV_DOCKER_COMPOSE
|
||||
}
|
||||
for _, agent := range ret.Data {
|
||||
aType, _ := agent.GetString("agent_type")
|
||||
if aType == "baremetal" {
|
||||
return RUNNING_ENV_DOCKER_COMPOSE_BAREMETAL
|
||||
}
|
||||
}
|
||||
return RUNNING_ENV_DOCKER_COMPOSE
|
||||
}
|
||||
return RUNNING_ENV_UNKNOWN
|
||||
|
||||
@@ -16,10 +16,19 @@ package service
|
||||
|
||||
import (
|
||||
_ "yunion.io/x/onecloud/pkg/cloudevent/policy"
|
||||
_ "yunion.io/x/onecloud/pkg/compute/policy"
|
||||
_ "yunion.io/x/onecloud/pkg/image/policy"
|
||||
_ "yunion.io/x/onecloud/pkg/keystone/policy"
|
||||
_ "yunion.io/x/onecloud/pkg/logger/policy"
|
||||
_ "yunion.io/x/onecloud/pkg/notify/policy"
|
||||
_ "yunion.io/x/onecloud/pkg/yunionconf/policy"
|
||||
compute "yunion.io/x/onecloud/pkg/compute/policy"
|
||||
image "yunion.io/x/onecloud/pkg/image/policy"
|
||||
keystone "yunion.io/x/onecloud/pkg/keystone/policy"
|
||||
logger "yunion.io/x/onecloud/pkg/logger/policy"
|
||||
notify "yunion.io/x/onecloud/pkg/notify/policy"
|
||||
yunionconf "yunion.io/x/onecloud/pkg/yunionconf/policy"
|
||||
)
|
||||
|
||||
func InitDefaultPolicy() {
|
||||
compute.Init()
|
||||
image.Init()
|
||||
keystone.Init()
|
||||
logger.Init()
|
||||
notify.Init()
|
||||
yunionconf.Init()
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ func StartService() {
|
||||
baseOpts := &opts.BaseOptions
|
||||
commonOpts := &opts.CommonOptions
|
||||
common_options.ParseOptions(opts, os.Args, "apigateway.conf", api.SERVICE_TYPE)
|
||||
InitDefaultPolicy()
|
||||
app_common.InitAuth(commonOpts, func() {
|
||||
log.Infof("Auth complete.")
|
||||
})
|
||||
|
||||
@@ -34,8 +34,6 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
ErrSync = errors.Error("sync error")
|
||||
|
||||
MinSyncIntervalSeconds = 10
|
||||
MinRunDelayMilliseconds = 100
|
||||
)
|
||||
@@ -170,7 +168,7 @@ func (h *APIHelper) doSync(ctx context.Context) (changed bool, err error) {
|
||||
if err != nil {
|
||||
log.Errorf("unable to EventNotify: %s", err)
|
||||
}
|
||||
return false, errors.Wrap(ErrSync, "incorrect")
|
||||
return false, errors.Errorf("sync error")
|
||||
}
|
||||
changed = r.Changed
|
||||
return changed, nil
|
||||
|
||||
32
pkg/apis/baremetal/baremetal.go
Normal file
32
pkg/apis/baremetal/baremetal.go
Normal file
@@ -0,0 +1,32 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package baremetal
|
||||
|
||||
type ValidateIPMIRequest struct {
|
||||
Ip string `json:"ip"`
|
||||
Username string `json:"username"`
|
||||
Password string `json:"password"`
|
||||
}
|
||||
|
||||
type RedfishSystemInfo struct {
|
||||
Path string `json:"path"`
|
||||
Info interface{} `json:"info"`
|
||||
}
|
||||
|
||||
type ValidateIPMIResponse struct {
|
||||
IsRedfishSupported bool `json:"is_redfish_supported"`
|
||||
RedfishSystemInfo *RedfishSystemInfo `json:"redfish_system_info"`
|
||||
IPMISystemInfo interface{} `json:"ipmi_system_info"`
|
||||
}
|
||||
@@ -39,8 +39,9 @@ type SamluserDetails struct {
|
||||
CloudgroupResourceDetails
|
||||
CloudaccountResourceDetails
|
||||
|
||||
ManagerId string
|
||||
Manager string
|
||||
CloudaccountId string
|
||||
ManagerId string
|
||||
Manager string
|
||||
|
||||
SSamluser
|
||||
}
|
||||
|
||||
@@ -90,8 +90,6 @@ type SCloudpolicy struct {
|
||||
PolicyType string `json:"policy_type"`
|
||||
// 策略内容
|
||||
Document *jsonutils.JSONDict `json:"document"`
|
||||
// 是否锁定, 若锁定后, 此策略不允许被绑定到用户或权限组, 仅管理员可以设置是否锁定
|
||||
Locked *bool `json:"locked,omitempty"`
|
||||
}
|
||||
|
||||
// SCloudpolicyResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SCloudpolicyResourceBase.
|
||||
@@ -110,7 +108,7 @@ type SCloudprovider struct {
|
||||
// SCloudproviderResourceBase is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SCloudproviderResourceBase.
|
||||
type SCloudproviderResourceBase struct {
|
||||
// 子订阅Id
|
||||
CloudproviderId string `json:"cloudprovider_id"`
|
||||
ManagerId string `json:"manager_id"`
|
||||
}
|
||||
|
||||
// SCloudrole is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SCloudrole.
|
||||
@@ -118,10 +116,10 @@ type SCloudrole struct {
|
||||
apis.SEnabledStatusInfrasResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SCloudaccountResourceBase
|
||||
SCloudproviderResourceBase
|
||||
SAMLProviderResourceBase
|
||||
SCloudgroupResourceBase
|
||||
Document *jsonutils.JSONDict `json:"document"`
|
||||
OwnerId string `json:"owner_id"`
|
||||
}
|
||||
|
||||
// SClouduser is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SClouduser.
|
||||
@@ -161,6 +159,7 @@ type SSAMLProvider struct {
|
||||
apis.SStatusInfrasResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SCloudaccountResourceBase
|
||||
SCloudproviderResourceBase
|
||||
EntityId string `json:"entity_id"`
|
||||
MetadataDocument string `json:"metadata_document"`
|
||||
AuthUrl string `json:"auth_url"`
|
||||
@@ -169,9 +168,8 @@ type SSAMLProvider struct {
|
||||
// SSamluser is an autogenerated struct via yunion.io/x/onecloud/pkg/cloudid/models.SSamluser.
|
||||
type SSamluser struct {
|
||||
apis.SStatusDomainLevelUserResourceBase
|
||||
apis.SExternalizedResourceBase
|
||||
SCloudgroupResourceBase
|
||||
SCloudaccountResourceBase
|
||||
// 邮箱地址
|
||||
Email string `json:"email"`
|
||||
Email string `json:"email"`
|
||||
CloudroleId string `json:"cloudrole_id"`
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
//go:build !ignore_autogenerated
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
@@ -12,4 +13,28 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package cloudprovider // import "yunion.io/x/onecloud/pkg/apis/cloudprovider"
|
||||
// Code generated by swagger-gen. DO NOT EDIT.
|
||||
|
||||
// Cloudprovider API
|
||||
//
|
||||
// Schemes: https, http
|
||||
// BasePath: /
|
||||
// Version: 1.0
|
||||
// Host: "127.0.0.1:8889"
|
||||
// Contact: Zexi Li<lizexi@yunion.cn>
|
||||
// License: Apache 2.0 http://www.apache.org/licenses/LICENSE-2.0.html
|
||||
//
|
||||
// Consumes:
|
||||
// - application/json
|
||||
//
|
||||
// Produces:
|
||||
// - application/json
|
||||
//
|
||||
// SecurityDefinitions:
|
||||
// keystone:
|
||||
// name: X-Auth-Token
|
||||
// type: apiKey
|
||||
// in: header
|
||||
//
|
||||
// swagger:meta
|
||||
package cloudprovider
|
||||
|
||||
@@ -14,7 +14,22 @@
|
||||
|
||||
package cloudprovider
|
||||
|
||||
import "yunion.io/x/cloudmux/pkg/cloudprovider"
|
||||
// CacheKeyRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.CacheKeyRule.
|
||||
type CacheKeyRule struct {
|
||||
RulePaths []string `json:"rule_paths"`
|
||||
RuleType string `json:"rule_type"`
|
||||
FullUrlCache bool `json:"full_url_cache"`
|
||||
IgnoreCase bool `json:"ignore_case"`
|
||||
QueryString CacheKeyRuleQueryString `json:"query_string"`
|
||||
RuleTag string `json:"rule_tag"`
|
||||
}
|
||||
|
||||
// CacheKeyRuleQueryString is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.CacheKeyRuleQueryString.
|
||||
type CacheKeyRuleQueryString struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
Action string `json:"action"`
|
||||
Value string `json:"value"`
|
||||
}
|
||||
|
||||
// DefaultAction is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.DefaultAction.
|
||||
type DefaultAction struct {
|
||||
@@ -30,6 +45,115 @@ type DefaultAction struct {
|
||||
ResponseHeaders map[string]string `json:"response_headers"`
|
||||
}
|
||||
|
||||
// ElasticSearchAccessInfo is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.ElasticSearchAccessInfo.
|
||||
type ElasticSearchAccessInfo struct {
|
||||
Domain string `json:"domain"`
|
||||
PrivateDomain string `json:"private_domain"`
|
||||
Vip string `json:"vip"`
|
||||
Port int `json:"port"`
|
||||
PrivatePort int `json:"private_port"`
|
||||
KibanaUrl string `json:"kibana_url"`
|
||||
KibanaPrivateUrl string `json:"kibana_private_url"`
|
||||
}
|
||||
|
||||
// RefererRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.RefererRule.
|
||||
type RefererRule struct {
|
||||
// 规则类型:
|
||||
// all:所有文件生效
|
||||
// file:指定文件后缀生效
|
||||
// directory:指定路径生效
|
||||
// path:指定绝对路径生效
|
||||
RuleType string `json:"rule_type"`
|
||||
RulePaths []string `json:"rule_paths"`
|
||||
RefererType string `json:"referer_type"`
|
||||
Referers []string `json:"referers"`
|
||||
AllowEmpty *bool `json:"allow_empty"`
|
||||
}
|
||||
|
||||
// RuleCacheConfig is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.RuleCacheConfig.
|
||||
type RuleCacheConfig struct {
|
||||
Cache *struct {
|
||||
Enabled bool
|
||||
CacheTime int
|
||||
CompareMaxAge bool
|
||||
IgnoreCacheControl bool
|
||||
IgnoreSetCookie bool
|
||||
} `json:"cache"`
|
||||
NoCache *struct {
|
||||
Enabled bool
|
||||
Revalidate bool
|
||||
} `json:"no_cache"`
|
||||
FollowOrigin *struct {
|
||||
Enabled bool
|
||||
HeuristicCache struct {
|
||||
Enabled bool
|
||||
CacheConfig struct {
|
||||
HeuristicCacheTimeSwitch bool
|
||||
HeuristicCacheTime int
|
||||
}
|
||||
}
|
||||
} `json:"follow_origin"`
|
||||
}
|
||||
|
||||
// SCDNCache is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNCache.
|
||||
type SCDNCache struct {
|
||||
RuleCache []SCacheRuleCache `json:"rule_cache"`
|
||||
}
|
||||
|
||||
// SCDNCacheKeys is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNCacheKeys.
|
||||
type SCDNCacheKeys struct {
|
||||
// 开启关闭忽略参数
|
||||
Enabled *bool `json:"enabled"`
|
||||
// 是否忽略大小
|
||||
IgnoreCase *bool `json:"ignore_case"`
|
||||
// 分路径缓存键配置
|
||||
KeyRules []CacheKeyRule `json:"key_rules"`
|
||||
}
|
||||
|
||||
// SCDNForceRedirect is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNForceRedirect.
|
||||
type SCDNForceRedirect struct {
|
||||
// 访问强制跳转配置开关
|
||||
Enabled *bool `json:"enabled"`
|
||||
// 访问强制跳转类型
|
||||
// enmu: http, https
|
||||
RedirectType string `json:"redirect_type"`
|
||||
}
|
||||
|
||||
// SCDNHttps is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNHttps.
|
||||
type SCDNHttps struct {
|
||||
// https 配置开关
|
||||
Enabled *bool `json:"enabled"`
|
||||
// http2 配置开关
|
||||
Http2 *bool `json:"http2"`
|
||||
}
|
||||
|
||||
// SCDNMaxAge is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNMaxAge.
|
||||
type SCDNMaxAge struct {
|
||||
Enabled *bool `json:"enabled"`
|
||||
MaxAgeRules []SMaxAgeRule `json:"max_age_rules"`
|
||||
}
|
||||
|
||||
// SCDNRangeOriginPull is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNRangeOriginPull.
|
||||
type SCDNRangeOriginPull struct {
|
||||
Enabled *bool `json:"enabled"`
|
||||
RangeOriginPullRules []SRangeOriginPullRule `json:"range_origin_pull_rules"`
|
||||
}
|
||||
|
||||
// SCDNReferer is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCDNReferer.
|
||||
type SCDNReferer struct {
|
||||
// 是否开启防盗链
|
||||
Enabled *bool `json:"enabled"`
|
||||
RefererRules []RefererRule `json:"referer_rules"`
|
||||
}
|
||||
|
||||
// SCacheRuleCache is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCacheRuleCache.
|
||||
type SCacheRuleCache struct {
|
||||
RulePaths []string `json:"rule_paths"`
|
||||
RuleType string `json:"rule_type"`
|
||||
Priority int `json:"priority"`
|
||||
CacheConfig *RuleCacheConfig `json:"cache_config"`
|
||||
}
|
||||
|
||||
// SCdnDomain is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCdnDomain.
|
||||
type SCdnDomain struct {
|
||||
// cdn加速域名
|
||||
@@ -48,14 +172,22 @@ type SCdnDomain struct {
|
||||
|
||||
// SCdnOrigin is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCdnOrigin.
|
||||
type SCdnOrigin struct {
|
||||
Type string `json:"type"`
|
||||
Origin string `json:"origin"`
|
||||
// 源站类型
|
||||
// domain: 域名类型, cos:对象存储源站, ip:IP 列表作为源站
|
||||
// enmu: domain, cos, ip
|
||||
// required: true
|
||||
Type string `json:"type"`
|
||||
// 源站地址
|
||||
Origin string `json:"origin"`
|
||||
// 回主源站时 Host 头部
|
||||
ServerName string `json:"server_name"`
|
||||
Protocol string `json:"protocol"`
|
||||
Path string `json:"path"`
|
||||
Port int `json:"port"`
|
||||
Enabled string `json:"enabled"`
|
||||
Priority int `json:"priority"`
|
||||
// 回源协议
|
||||
// enmu: http, follow, https
|
||||
Protocol string `json:"protocol"`
|
||||
Path string `json:"path"`
|
||||
Port int `json:"port"`
|
||||
Enabled string `json:"enabled"`
|
||||
Priority int `json:"priority"`
|
||||
}
|
||||
|
||||
// SCdnOrigins is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SCdnOrigins.
|
||||
@@ -85,10 +217,28 @@ type SGeographicInfo struct {
|
||||
CountryCode string `json:"country_code"`
|
||||
}
|
||||
|
||||
// SMaxAgeRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SMaxAgeRule.
|
||||
type SMaxAgeRule struct {
|
||||
MaxAgeType string `json:"max_age_type"`
|
||||
MaxAgeContents []string `json:"max_age_contents"`
|
||||
MaxAgeTime int `json:"max_age_time"`
|
||||
FollowOrigin bool `json:"follow_origin"`
|
||||
}
|
||||
|
||||
// SRangeOriginPullRule is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SRangeOriginPullRule.
|
||||
type SRangeOriginPullRule struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
RuleType string `json:"rule_type"`
|
||||
RulePaths []string `json:"rule_paths"`
|
||||
}
|
||||
|
||||
// SSubAccount is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SSubAccount.
|
||||
type SSubAccount struct {
|
||||
Id string `json:"id"`
|
||||
// 若Account不为空,可不传
|
||||
Name string `json:"name"`
|
||||
// 描述信息
|
||||
Desc string `json:"desc"`
|
||||
// 输入必填,若为空,需要指定子账号名称
|
||||
Account string `json:"account"`
|
||||
HealthStatus string `json:"health_status"`
|
||||
@@ -144,9 +294,11 @@ type ServerVncOutput struct {
|
||||
HostId string `json:"host_id"`
|
||||
Zone string `json:"zone"`
|
||||
// kvm host ip
|
||||
Host string `json:"host"`
|
||||
Protocol string `json:"protocol"`
|
||||
Port int64 `json:"port"`
|
||||
Host string `json:"host"`
|
||||
Protocol string `json:"protocol"`
|
||||
Port int64 `json:"port"`
|
||||
// volcengine
|
||||
Region string `json:"region"`
|
||||
Url string `json:"url"`
|
||||
InstanceId string `json:"instance_id"`
|
||||
InstanceName string `json:"instance_name"`
|
||||
@@ -163,7 +315,7 @@ type ServerVncOutput struct {
|
||||
// SubAccounts is an autogenerated struct via yunion.io/x/cloudmux/pkg/cloudprovider.SubAccounts.
|
||||
type SubAccounts struct {
|
||||
// 若输出则是全量子账号列表,若输入,代表允许同步的子账号
|
||||
Accounts []cloudprovider.SSubAccount `json:"accounts"`
|
||||
Accounts []SSubAccount `json:"accounts"`
|
||||
// 若输出是云账号查询到的区域列表,若输入,代表允许同步的区域
|
||||
Cloudregions []struct {
|
||||
Id string
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
//go:build !ignore_autogenerated
|
||||
// +build !ignore_autogenerated
|
||||
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Code generated by swagger-gen. DO NOT EDIT.
|
||||
|
||||
package cloudprovider
|
||||
@@ -284,7 +284,7 @@ type IsolatedDeviceConfig struct {
|
||||
DevType string `json:"dev_type"`
|
||||
Model string `json:"model"`
|
||||
Vendor string `json:"vendor"`
|
||||
NetworkIndex *int8 `json:"network_index"`
|
||||
NetworkIndex *int `json:"network_index"`
|
||||
WireId string `json:"wire_id"`
|
||||
DiskIndex *int8 `json:"disk_index"`
|
||||
DevicePath string `json:"device_path"`
|
||||
@@ -309,6 +309,21 @@ type BaremetalDiskConfig struct {
|
||||
Direct *bool `json:"direct,omitempty"`
|
||||
}
|
||||
|
||||
type RootDiskMatcherSizeMBRange struct {
|
||||
Start int64 `json:"start"`
|
||||
End int64 `json:"end"`
|
||||
}
|
||||
|
||||
const (
|
||||
BAREMETAL_SERVER_METATA_ROOT_DISK_MATCHER = "baremetal_root_disk_matcher"
|
||||
)
|
||||
|
||||
type BaremetalRootDiskMatcher struct {
|
||||
Device string `json:"device"`
|
||||
SizeMB int64 `json:"size_mb"`
|
||||
SizeMBRange *RootDiskMatcherSizeMBRange `json:"size_mb_range"`
|
||||
}
|
||||
|
||||
type ServerConfigs struct {
|
||||
// 调度使用指定的云账号
|
||||
PreferManager string `json:"prefer_manager_id"`
|
||||
@@ -350,6 +365,9 @@ type ServerConfigs struct {
|
||||
// default: kvm
|
||||
Hypervisor string `json:"hypervisor"`
|
||||
|
||||
// swagger: ignore
|
||||
Provider string `json:"provider"`
|
||||
|
||||
// 包年包月资源池
|
||||
// swagger:ignore
|
||||
// emum: shared, prepaid, dedicated
|
||||
@@ -401,6 +419,9 @@ type ServerConfigs struct {
|
||||
// 裸金属磁盘配置列表
|
||||
BaremetalDiskConfigs []*BaremetalDiskConfig `json:"baremetal_disk_configs"`
|
||||
|
||||
// 裸金属系统盘匹配器
|
||||
BaremetalRootDiskMatcher *BaremetalRootDiskMatcher `json:"baremetal_root_disk_matcher"`
|
||||
|
||||
// 主机组列表, 参数可以是主机组名称或ID,建议使用ID
|
||||
InstanceGroupIds []string `json:"groups"`
|
||||
|
||||
|
||||
@@ -14,7 +14,11 @@
|
||||
|
||||
package compute
|
||||
|
||||
import "yunion.io/x/onecloud/pkg/apis"
|
||||
import (
|
||||
"time"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
)
|
||||
|
||||
const (
|
||||
APP_TYPE_WEB = "web"
|
||||
@@ -38,6 +42,9 @@ type AppDetails struct {
|
||||
apis.VirtualResourceDetails
|
||||
ManagedResourceInfo
|
||||
CloudregionResourceInfo
|
||||
Network string
|
||||
VpcId string
|
||||
Vpc string
|
||||
}
|
||||
|
||||
type AppEnvironmentListInput struct {
|
||||
@@ -51,3 +58,56 @@ type AppEnvironmentListInput struct {
|
||||
type AppEnvironmentDetails struct {
|
||||
apis.VirtualResourceDetails
|
||||
}
|
||||
|
||||
type AppHybirdConnection struct {
|
||||
Id string
|
||||
Name string
|
||||
Hostname string
|
||||
Namespace string
|
||||
Port int
|
||||
}
|
||||
|
||||
type AppHybirdConnectionOutput struct {
|
||||
Data []AppHybirdConnection
|
||||
}
|
||||
|
||||
type AppBackup struct {
|
||||
Id string
|
||||
Name string
|
||||
Type string
|
||||
}
|
||||
|
||||
type AppBackupOutput struct {
|
||||
Data []AppBackup
|
||||
BackupConfig struct {
|
||||
Enabled bool
|
||||
FrequencyInterval int
|
||||
FrequencyUnit string
|
||||
RetentionPeriodInDays int
|
||||
}
|
||||
}
|
||||
|
||||
type AppCertificate struct {
|
||||
Id string
|
||||
Name string
|
||||
SubjectName string
|
||||
Issuer string
|
||||
IssueDate time.Time
|
||||
Thumbprint string
|
||||
ExpireTime time.Time
|
||||
}
|
||||
|
||||
type AppCertificateOutput struct {
|
||||
Data []AppCertificate
|
||||
}
|
||||
|
||||
type AppDomain struct {
|
||||
Id string
|
||||
Name string
|
||||
Status string
|
||||
SslState string
|
||||
}
|
||||
|
||||
type AppDomainOutput struct {
|
||||
Data []AppDomain
|
||||
}
|
||||
|
||||
@@ -83,6 +83,11 @@ type BackupStorageDetails struct {
|
||||
|
||||
type BackupStorageListInput struct {
|
||||
apis.EnabledStatusInfrasResourceBaseListInput
|
||||
|
||||
// filter by server_id
|
||||
ServerId string `json:"server_id"`
|
||||
// filter by disk_id
|
||||
DiskId string `json:"disk_id"`
|
||||
}
|
||||
|
||||
type DiskBackupListInput struct {
|
||||
@@ -112,6 +117,8 @@ type DiskBackupDetails struct {
|
||||
BackupStorageName string `json:"backup_storage_name"`
|
||||
// description: 是否是子备份
|
||||
IsSubBackup bool `json:"is_sub_backup"`
|
||||
|
||||
SDiskBackup
|
||||
}
|
||||
|
||||
type DiskBackupCreateInput struct {
|
||||
@@ -182,6 +189,8 @@ type SBackupStorageAccessInfo struct {
|
||||
ObjectAccessKey string `json:"object_access_key"`
|
||||
// description: secret of object storage
|
||||
ObjectSecret string `json:"object_secret"`
|
||||
// description: signing version, can be v2/v4, default is v4
|
||||
ObjectSignVer string `json:"object_sign_ver"`
|
||||
}
|
||||
|
||||
func (ba *SBackupStorageAccessInfo) String() string {
|
||||
|
||||
47
pkg/apis/compute/backup_storages.go
Normal file
47
pkg/apis/compute/backup_storages.go
Normal file
@@ -0,0 +1,47 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package compute
|
||||
|
||||
type BackupstorageResourceInput struct {
|
||||
// 备份存储(ID或Name)
|
||||
BackupstorageId string `json:"backupstorage_id"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by backupstorage_id
|
||||
Backupstorage string `json:"backupstorage" yunion-deprecated-by:"backupstorage_id"`
|
||||
}
|
||||
|
||||
type BackupstorageFilterListInputBase struct {
|
||||
BackupstorageResourceInput
|
||||
|
||||
// 以备份存储名称排序
|
||||
// pattern:asc|desc
|
||||
OrderByBackupstorage string `json:"order_by_backupstorage"`
|
||||
}
|
||||
|
||||
type BackupstorageResourceInfo struct {
|
||||
// 备份存储名称
|
||||
Backupstorage string `json:"backupstorage"`
|
||||
|
||||
// 备份存储类型
|
||||
BackupstorageType TBackupStorageType `json:"backupstorage_type"`
|
||||
|
||||
// 备份存储状态
|
||||
BackupstorageStatus string `json:"backupstorage_status"`
|
||||
}
|
||||
|
||||
type BackupstorageFilterListInput struct {
|
||||
BackupstorageFilterListInputBase
|
||||
}
|
||||
15
pkg/apis/compute/baremetal/doc.go
Normal file
15
pkg/apis/compute/baremetal/doc.go
Normal file
@@ -0,0 +1,15 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package baremetal // import "yunion.io/x/onecloud/pkg/apis/compute/baremetal"
|
||||
165
pkg/apis/compute/baremetal/profiles.go
Normal file
165
pkg/apis/compute/baremetal/profiles.go
Normal file
@@ -0,0 +1,165 @@
|
||||
// Copyright 2019 Yunion
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package baremetal
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/types"
|
||||
)
|
||||
|
||||
const (
|
||||
DefaultBaremetalProfileId = "default"
|
||||
)
|
||||
|
||||
type BaremetalProfileListInput struct {
|
||||
apis.StandaloneAnonResourceListInput
|
||||
|
||||
OemName []string `json:"oem_name"`
|
||||
Model []string `json:"model"`
|
||||
}
|
||||
|
||||
func (input *BaremetalProfileListInput) Normalize() {
|
||||
for i := range input.OemName {
|
||||
input.OemName[i] = strings.TrimSpace(input.OemName[i])
|
||||
}
|
||||
for i := range input.Model {
|
||||
input.Model[i] = strings.TrimSpace(input.Model[i])
|
||||
}
|
||||
}
|
||||
|
||||
type BaremetalProfileCreateInput struct {
|
||||
apis.StandaloneAnonResourceCreateInput
|
||||
|
||||
OemName string
|
||||
Model string
|
||||
LanChannel uint8
|
||||
RootId int
|
||||
RootName string
|
||||
StrongPass bool
|
||||
}
|
||||
|
||||
type BaremetalProfileUpdateInput struct {
|
||||
apis.StandaloneAnonResourceBaseUpdateInput
|
||||
|
||||
LanChannel uint8
|
||||
RootId *int
|
||||
RootName string
|
||||
StrongPass *bool
|
||||
}
|
||||
|
||||
type BaremetalProfileDetails struct {
|
||||
SBaremetalProfile
|
||||
}
|
||||
|
||||
func (detail BaremetalProfileDetails) ToSpec() BaremetalProfileSpec {
|
||||
channels := make([]uint8, 0)
|
||||
if detail.LanChannel > 0 {
|
||||
channels = append(channels, detail.LanChannel)
|
||||
}
|
||||
if detail.LanChannel2 > 0 {
|
||||
channels = append(channels, detail.LanChannel2)
|
||||
}
|
||||
if detail.LanChannel3 > 0 {
|
||||
channels = append(channels, detail.LanChannel3)
|
||||
}
|
||||
return BaremetalProfileSpec{
|
||||
OemName: detail.OemName,
|
||||
Model: detail.Model,
|
||||
LanChannels: channels,
|
||||
RootName: detail.RootName,
|
||||
RootId: detail.RootId,
|
||||
StrongPass: detail.StrongPass,
|
||||
}
|
||||
}
|
||||
|
||||
type BaremetalProfileSpec struct {
|
||||
OemName string
|
||||
Model string
|
||||
LanChannels []uint8
|
||||
RootName string
|
||||
RootId int
|
||||
StrongPass bool
|
||||
}
|
||||
|
||||
type BaremetalProfileSpecs []BaremetalProfileSpec
|
||||
|
||||
func (a BaremetalProfileSpecs) Len() int { return len(a) }
|
||||
func (a BaremetalProfileSpecs) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
|
||||
func (a BaremetalProfileSpecs) Less(i, j int) bool {
|
||||
if a[i].OemName != a[j].OemName {
|
||||
return a[i].OemName < a[j].OemName
|
||||
}
|
||||
if a[i].Model != a[j].Model {
|
||||
return a[i].Model < a[j].Model
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
var PredefinedProfiles = []BaremetalProfileSpec{
|
||||
{
|
||||
OemName: "",
|
||||
LanChannels: []uint8{1, 2, 8},
|
||||
RootName: "root",
|
||||
RootId: 2,
|
||||
},
|
||||
{
|
||||
OemName: types.OEM_NAME_INSPUR,
|
||||
LanChannels: []uint8{8, 1},
|
||||
RootName: "admin",
|
||||
RootId: 2,
|
||||
},
|
||||
{
|
||||
OemName: types.OEM_NAME_LENOVO,
|
||||
LanChannels: []uint8{1, 8},
|
||||
RootName: "root",
|
||||
RootId: 2,
|
||||
},
|
||||
{
|
||||
OemName: types.OEM_NAME_HP,
|
||||
LanChannels: []uint8{1, 2},
|
||||
RootName: "root",
|
||||
RootId: 1,
|
||||
},
|
||||
{
|
||||
OemName: types.OEM_NAME_HUAWEI,
|
||||
LanChannels: []uint8{1},
|
||||
RootName: "root",
|
||||
RootId: 2,
|
||||
StrongPass: true,
|
||||
},
|
||||
{
|
||||
OemName: types.OEM_NAME_FOXCONN,
|
||||
LanChannels: []uint8{1},
|
||||
RootName: "root",
|
||||
RootId: 2,
|
||||
StrongPass: true,
|
||||
},
|
||||
{
|
||||
OemName: types.OEM_NAME_QEMU,
|
||||
LanChannels: []uint8{8, 1},
|
||||
RootName: "root",
|
||||
RootId: 2,
|
||||
StrongPass: true,
|
||||
},
|
||||
{
|
||||
OemName: types.OEM_NAME_H3C,
|
||||
LanChannels: []uint8{1},
|
||||
RootName: "root",
|
||||
RootId: 2,
|
||||
StrongPass: true,
|
||||
},
|
||||
}
|
||||
36
pkg/apis/compute/baremetal/zz_generated.model.go
Normal file
36
pkg/apis/compute/baremetal/zz_generated.model.go
Normal file
@@ -0,0 +1,36 @@
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
// Code generated by model-api-gen. DO NOT EDIT.
|
||||
|
||||
package baremetal
|
||||
|
||||
import (
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
)
|
||||
|
||||
// SBaremetalProfile is an autogenerated struct via yunion.io/x/onecloud/pkg/compute/models/baremetal.SBaremetalProfile.
|
||||
type SBaremetalProfile struct {
|
||||
apis.SStandaloneAnonResourceBase
|
||||
// 品牌名称(English)
|
||||
OemName string `json:"oem_name"`
|
||||
Model string `json:"model"`
|
||||
LanChannel byte `json:"lan_channel"`
|
||||
LanChannel2 byte `json:"lan_channel2"`
|
||||
LanChannel3 byte `json:"lan_channel3"`
|
||||
// BMC Root账号名称,默认为 root
|
||||
RootName string `json:"root_name"`
|
||||
// BMC Root账号ID,默认为 2
|
||||
RootId int `json:"root_id"`
|
||||
// 是否要求强密码
|
||||
StrongPass bool `json:"strong_pass"`
|
||||
}
|
||||
@@ -68,3 +68,22 @@ type CachedimageDetails struct {
|
||||
type CachedImageSetClassMetadataInput struct {
|
||||
ClassMetadata map[string]string `json:"class_metadata"`
|
||||
}
|
||||
|
||||
type CachedimageListInput struct {
|
||||
apis.SharableVirtualResourceListInput
|
||||
apis.ExternalizedResourceBaseListInput
|
||||
|
||||
CloudproviderResourceListInput
|
||||
CloudregionResourceListInput
|
||||
ZoneResourceInput
|
||||
|
||||
// 镜像类型,可能值为: system(公有云公共镜像), customized(自定义镜像)
|
||||
// example: system
|
||||
ImageType []string `json:"image_type"`
|
||||
|
||||
// filter by host schedtag
|
||||
HostSchedtagId string `json:"host_schedtag_id"`
|
||||
|
||||
// valid cachedimage
|
||||
Valid bool `json:"valid"`
|
||||
}
|
||||
|
||||
@@ -72,12 +72,6 @@ type CloudenvResourceListInput struct {
|
||||
// Deprecated
|
||||
Provider []string `json:"provider" yunion-deprecated-by:"providers"`
|
||||
|
||||
// 列出指定云平台品牌的资源,一般来说brand和provider相同,除了以上支持的provider之外,还支持以下band
|
||||
//
|
||||
// | Brand | Provider | 说明 |
|
||||
// |----------|----------|------------|
|
||||
// | DStack | ZStack | 滴滴云私有云 |
|
||||
//
|
||||
Brands []string `json:"brands"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
@@ -97,25 +91,25 @@ type CloudenvResourceListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
PublicCloud bool `json:"public_cloud"`
|
||||
PublicCloud *bool `json:"public_cloud"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
IsPublic bool `json:"is_public"`
|
||||
IsPublic *bool `json:"is_public"`
|
||||
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
PrivateCloud bool `json:"private_cloud"`
|
||||
PrivateCloud *bool `json:"private_cloud"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
IsPrivate bool `json:"is_private"`
|
||||
IsPrivate *bool `json:"is_private"`
|
||||
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
IsOnPremise bool `json:"is_on_premise"`
|
||||
IsOnPremise *bool `json:"is_on_premise"`
|
||||
|
||||
// 以平台名称排序
|
||||
// pattern:asc|desc
|
||||
@@ -169,7 +163,7 @@ type CloudaccountCreateInput struct {
|
||||
// | Huawei | Huawei |
|
||||
// | OpenStack | OpenStack |
|
||||
// | Ucloud | Ucloud |
|
||||
// | ZStack | ZStack, DStack |
|
||||
// | ZStack | ZStack |
|
||||
// | Google | Google |
|
||||
// | Ctyun | Ctyun |
|
||||
Brand string `json:"brand"`
|
||||
@@ -224,6 +218,8 @@ type CloudaccountCreateInput struct {
|
||||
// 货币类型
|
||||
// enmu: CNY, USD
|
||||
Currency string `json:"currency"`
|
||||
|
||||
EnableAutoSyncResource *bool `json:"enable_auto_sync_resource"`
|
||||
}
|
||||
|
||||
type SProjectMappingResourceInput struct {
|
||||
@@ -405,6 +401,8 @@ type CloudaccountUpdateInput struct {
|
||||
ReadOnly bool `json:"read_only"`
|
||||
|
||||
Currency string `json:"currency"`
|
||||
|
||||
EnableAutoSyncResource *bool `json:"enable_auto_sync_resource"`
|
||||
}
|
||||
|
||||
type CloudaccountPerformPublicInput struct {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user