Compare commits
608 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c93f1ba564 | ||
|
|
b6f818bdd3 | ||
|
|
77eff6ce91 | ||
|
|
15a9e72192 | ||
|
|
9f070d9ebb | ||
|
|
2077004bd3 | ||
|
|
9067e85b55 | ||
|
|
c30f1cee92 | ||
|
|
a060ddbef2 | ||
|
|
8f202ef5a4 | ||
|
|
0fdf5ee0fc | ||
|
|
875647577a | ||
|
|
46d504cddc | ||
|
|
27ac6db99a | ||
|
|
3c8de3a8cf | ||
|
|
e6086afdbe | ||
|
|
59f5f6a9f0 | ||
|
|
67b0261b0b | ||
|
|
e104c4a48e | ||
|
|
ba051dfb7d | ||
|
|
c26928516d | ||
|
|
4135b27cfd | ||
|
|
755e0b49e9 | ||
|
|
605f4d4a62 | ||
|
|
33acf45264 | ||
|
|
f229fee3ee | ||
|
|
21b3ed67af | ||
|
|
90cadc76bb | ||
|
|
b13b6db6f7 | ||
|
|
1d88bb491d | ||
|
|
13cf3e6fa1 | ||
|
|
50c1fe8298 | ||
|
|
39eeedec2c | ||
|
|
0f2a09d5f1 | ||
|
|
6cf657a0e1 | ||
|
|
1ba2627810 | ||
|
|
1ab37e0b00 | ||
|
|
63dac87a75 | ||
|
|
7bf3a6e3f1 | ||
|
|
2fd4be91ad | ||
|
|
296129db02 | ||
|
|
5ece5ba8a7 | ||
|
|
96e9bce331 | ||
|
|
ddd4ab54a7 | ||
|
|
849132fa19 | ||
|
|
d23a7a4fba | ||
|
|
af2a64d0d2 | ||
|
|
6cb8c51754 | ||
|
|
48313d6cd9 | ||
|
|
bb8460a118 | ||
|
|
3e55683c2c | ||
|
|
d86fc2f73c | ||
|
|
24a2edf6a3 | ||
|
|
07bef3280d | ||
|
|
fa465d0ef3 | ||
|
|
1f1537fd60 | ||
|
|
597855364c | ||
|
|
4306d0f661 | ||
|
|
4c01be21ca | ||
|
|
7ec391b6e0 | ||
|
|
8c82124a57 | ||
|
|
0ae0338a8f | ||
|
|
e05c724553 | ||
|
|
deda36a8b5 | ||
|
|
d32ab25ffd | ||
|
|
2332a13477 | ||
|
|
c417cc31c8 | ||
|
|
ec47df3cc1 | ||
|
|
a09be99ae6 | ||
|
|
2debb11f03 | ||
|
|
ba3a0d6cd6 | ||
|
|
4e8763995e | ||
|
|
dfe7e5aa58 | ||
|
|
d2ed375efb | ||
|
|
cabb60bd3f | ||
|
|
0980bd38e7 | ||
|
|
6e1a23e0d6 | ||
|
|
6ea1d51913 | ||
|
|
4369e6e779 | ||
|
|
79a476712f | ||
|
|
4e38a54dd8 | ||
|
|
33610a5269 | ||
|
|
a5a8d2ef62 | ||
|
|
d357ef9bcb | ||
|
|
3952ab0c4b | ||
|
|
c41c532d0f | ||
|
|
023622d95e | ||
|
|
e5dc8fea3a | ||
|
|
56436f20e2 | ||
|
|
fcb74aee77 | ||
|
|
7e4d34958e | ||
|
|
9d6ee7f9b0 | ||
|
|
aa16e75b39 | ||
|
|
283a00bde2 | ||
|
|
0c78359832 | ||
|
|
ac7cefde39 | ||
|
|
4f7f81bfb0 | ||
|
|
64154cae38 | ||
|
|
1689a73809 | ||
|
|
e20ef0cfb8 | ||
|
|
e6dec7aa46 | ||
|
|
efae5f6ae2 | ||
|
|
988958f131 | ||
|
|
13844e10f8 | ||
|
|
87917e618c | ||
|
|
a2cde72347 | ||
|
|
b84b80742c | ||
|
|
dcab568ea7 | ||
|
|
4fdf9a1190 | ||
|
|
6c7bfe6514 | ||
|
|
419fa59923 | ||
|
|
73fe08cd81 | ||
|
|
b79c228890 | ||
|
|
d88146459a | ||
|
|
2e1e4e4e80 | ||
|
|
6f7c026e4c | ||
|
|
a6aa0f14c1 | ||
|
|
2377959628 | ||
|
|
e91ce7ebbb | ||
|
|
87416b1fee | ||
|
|
dd0b791d9d | ||
|
|
c31af8bb8c | ||
|
|
9b6d14c752 | ||
|
|
aa60ff9dd0 | ||
|
|
804e3b04ad | ||
|
|
bfedc14497 | ||
|
|
ff7c305345 | ||
|
|
2a6a6cab24 | ||
|
|
982ff0da5e | ||
|
|
63582de380 | ||
|
|
d8840cc810 | ||
|
|
27489d9a3d | ||
|
|
7bd6d73663 | ||
|
|
54dfcbd378 | ||
|
|
445c0be5b1 | ||
|
|
373d576e54 | ||
|
|
b19852a75a | ||
|
|
a0e4a62278 | ||
|
|
7ca7c8278b | ||
|
|
ced3e64c61 | ||
|
|
b51d5505f3 | ||
|
|
c73764bca1 | ||
|
|
531d8a2f4e | ||
|
|
9ec73260c9 | ||
|
|
173c3d43bb | ||
|
|
c6eae4b807 | ||
|
|
58efbbbf60 | ||
|
|
616be03c0b | ||
|
|
c7e195b361 | ||
|
|
fa85ad9791 | ||
|
|
9f4d3f4586 | ||
|
|
52075681c3 | ||
|
|
fd86e65e5e | ||
|
|
b10c4f51b1 | ||
|
|
14604e0cba | ||
|
|
83ca73ec0b | ||
|
|
b14d67eead | ||
|
|
6166223995 | ||
|
|
61cf109fd6 | ||
|
|
d372a2cd7a | ||
|
|
2d6b5ecbc6 | ||
|
|
85797749ba | ||
|
|
09503ed0c8 | ||
|
|
34b05bd426 | ||
|
|
11eb587610 | ||
|
|
13f9f6c848 | ||
|
|
03c24c6f14 | ||
|
|
0c8025b39f | ||
|
|
7117d87546 | ||
|
|
55531d605b | ||
|
|
e32819034a | ||
|
|
f208ce5382 | ||
|
|
31d18efa9a | ||
|
|
4d62fe1638 | ||
|
|
11d0080488 | ||
|
|
8bea9ab2a5 | ||
|
|
480e6d7980 | ||
|
|
4fc95ae17d | ||
|
|
d5a3fee0be | ||
|
|
6791631904 | ||
|
|
6f0df68200 | ||
|
|
9a8106d714 | ||
|
|
991043822b | ||
|
|
91f165ca32 | ||
|
|
c2dc7391e4 | ||
|
|
bb0f613f5b | ||
|
|
ecab89f7fb | ||
|
|
69055c492e | ||
|
|
07fbb8b8f7 | ||
|
|
b65f04a2b5 | ||
|
|
83d6620fe3 | ||
|
|
b1aedf813f | ||
|
|
76bdd9dded | ||
|
|
a9e82eb909 | ||
|
|
f18360416b | ||
|
|
8ca6401ac0 | ||
|
|
c1e41e6b0a | ||
|
|
1b7fb2ae7a | ||
|
|
eff001b12f | ||
|
|
9498f8dcb5 | ||
|
|
5782b9d9a2 | ||
|
|
7db4e187ec | ||
|
|
c95bc64dbe | ||
|
|
16647b88e9 | ||
|
|
59c4ac6336 | ||
|
|
49f0b83613 | ||
|
|
622f9ed3cd | ||
|
|
213d7589c6 | ||
|
|
0a4f02bd83 | ||
|
|
db9b61677c | ||
|
|
003eaaea76 | ||
|
|
d8350625f3 | ||
|
|
6b2043c832 | ||
|
|
87cb36c944 | ||
|
|
59d4ebc109 | ||
|
|
6eabff3d96 | ||
|
|
1267f989b2 | ||
|
|
2895804e0f | ||
|
|
c2171fafde | ||
|
|
b0f1f88b5b | ||
|
|
8917f415cc | ||
|
|
40aca3da79 | ||
|
|
cf27e20bf2 | ||
|
|
3b10eb58ea | ||
|
|
98b4012dde | ||
|
|
2769ba145a | ||
|
|
9c5a788dae | ||
|
|
a06636035a | ||
|
|
1808027fa1 | ||
|
|
3ac22d48d5 | ||
|
|
288bf01dd8 | ||
|
|
d546f05e11 | ||
|
|
5c73137d60 | ||
|
|
1daec71271 | ||
|
|
3a519cdcfa | ||
|
|
a2dce5fa9f | ||
|
|
3a7da72919 | ||
|
|
4f0752c9fc | ||
|
|
59d074c7a9 | ||
|
|
c5a8ad3168 | ||
|
|
b86a992a33 | ||
|
|
24410e7c85 | ||
|
|
ffb3362f79 | ||
|
|
f5beb90608 | ||
|
|
cc02b21632 | ||
|
|
281f8d553a | ||
|
|
cc52e267eb | ||
|
|
7fdc02aec8 | ||
|
|
29e1af3363 | ||
|
|
8a635fc0d7 | ||
|
|
35da684ec9 | ||
|
|
8cfa41eb53 | ||
|
|
08e40fe632 | ||
|
|
0b0cb785b5 | ||
|
|
5838606789 | ||
|
|
38f95e3b28 | ||
|
|
0c90785ed0 | ||
|
|
62d762318f | ||
|
|
097e6e9825 | ||
|
|
9e35db0642 | ||
|
|
3b55d63211 | ||
|
|
2981e63797 | ||
|
|
ca742b781f | ||
|
|
d60cac0122 | ||
|
|
62745e9ff2 | ||
|
|
c81da22e8a | ||
|
|
c07b7b4772 | ||
|
|
6cb703685b | ||
|
|
7a3c2a3cf8 | ||
|
|
d8ac8cc1e3 | ||
|
|
0e492dae67 | ||
|
|
b72217764a | ||
|
|
26bcbb896a | ||
|
|
7b4254f525 | ||
|
|
68ea3b5d05 | ||
|
|
8a51570d14 | ||
|
|
9c6ed83d63 | ||
|
|
4f29f8457f | ||
|
|
94747acab2 | ||
|
|
d8360737ee | ||
|
|
bb91cb66b0 | ||
|
|
ce473b9286 | ||
|
|
14fe7c1269 | ||
|
|
b6938a5888 | ||
|
|
901358e8d4 | ||
|
|
5155aef802 | ||
|
|
23b3283014 | ||
|
|
53eb59f5ad | ||
|
|
e088431c62 | ||
|
|
8bb982b39f | ||
|
|
744ccea842 | ||
|
|
19195e0cd0 | ||
|
|
7ce36bac42 | ||
|
|
2a704d3d59 | ||
|
|
897b5b8be5 | ||
|
|
03dc83af3a | ||
|
|
26f7982323 | ||
|
|
934e8c9f4c | ||
|
|
e780f24fb9 | ||
|
|
c48a024310 | ||
|
|
3fcf278460 | ||
|
|
8b6202296e | ||
|
|
7030e80ac8 | ||
|
|
6bed9f8f97 | ||
|
|
e7263c9a89 | ||
|
|
9c1e87b1be | ||
|
|
6f98ecc59f | ||
|
|
ac77b8b441 | ||
|
|
d4a69978fc | ||
|
|
81087ae910 | ||
|
|
ebab2e1648 | ||
|
|
9a875a6f14 | ||
|
|
abc9f2b428 | ||
|
|
a2a09b8db1 | ||
|
|
716aabe782 | ||
|
|
07a23ab374 | ||
|
|
e7838ebc47 | ||
|
|
e6705b685c | ||
|
|
6b11d403a6 | ||
|
|
8958cbec69 | ||
|
|
5ef66c3cfc | ||
|
|
d4395e1409 | ||
|
|
8a4139c8e7 | ||
|
|
34bcd25c9f | ||
|
|
7853aa6bb9 | ||
|
|
9c1f0c47b0 | ||
|
|
6ac95e40a4 | ||
|
|
70fb7291f5 | ||
|
|
4b28bf5921 | ||
|
|
99d5e71512 | ||
|
|
2a5c1afbdf | ||
|
|
51a9482e91 | ||
|
|
d01eeb43a7 | ||
|
|
7121dbfcea | ||
|
|
e5fc6e3125 | ||
|
|
396d8fbcfc | ||
|
|
f958b73e48 | ||
|
|
940c7dc5bc | ||
|
|
cdadb05551 | ||
|
|
1dcdc61ce8 | ||
|
|
7174892231 | ||
|
|
3262212bd0 | ||
|
|
ee1a6718d7 | ||
|
|
1c6a29bc20 | ||
|
|
6b02f472e6 | ||
|
|
eddb6a810b | ||
|
|
3b1449c029 | ||
|
|
365778eecb | ||
|
|
52fac7f542 | ||
|
|
5c96eb9e25 | ||
|
|
cd5f5cb635 | ||
|
|
e17a371744 | ||
|
|
4f72aa969b | ||
|
|
3a84cba801 | ||
|
|
9df7b815e9 | ||
|
|
3617ff2aef | ||
|
|
e7f16b4899 | ||
|
|
dbe456c1a9 | ||
|
|
6a96ec8177 | ||
|
|
85398eec53 | ||
|
|
e7f220b069 | ||
|
|
1bb7658294 | ||
|
|
39b7b3292a | ||
|
|
38cf606371 | ||
|
|
5e3f9acff9 | ||
|
|
2305c0563a | ||
|
|
b5a3398a69 | ||
|
|
c787110e17 | ||
|
|
1a83797a86 | ||
|
|
68e0f1d6a2 | ||
|
|
2d3a3c396c | ||
|
|
d6aceb5430 | ||
|
|
1c109769df | ||
|
|
f3bcfc327d | ||
|
|
fd779c2ffa | ||
|
|
58903e8337 | ||
|
|
5b98bb8fd6 | ||
|
|
c98d5c06d0 | ||
|
|
33c979783d | ||
|
|
eeb95b2bf6 | ||
|
|
e5c96a0787 | ||
|
|
e3c6e22b4e | ||
|
|
9789ec36db | ||
|
|
51ba86fa46 | ||
|
|
f5922bb68b | ||
|
|
40812fc086 | ||
|
|
8b34b81a61 | ||
|
|
04e1c4573f | ||
|
|
d7de170105 | ||
|
|
369ae9342e | ||
|
|
2b1d17e38f | ||
|
|
d5c01fcd7d | ||
|
|
d97d18ebab | ||
|
|
aa2714d118 | ||
|
|
06f259f190 | ||
|
|
77e74917ca | ||
|
|
d582cc96b7 | ||
|
|
0288215fbb | ||
|
|
d3e84e5824 | ||
|
|
dd91c793e2 | ||
|
|
b495148a69 | ||
|
|
e0f3e4513d | ||
|
|
6512a51119 | ||
|
|
90c54221d6 | ||
|
|
3f023f9771 | ||
|
|
a4ad341a18 | ||
|
|
2d6f949359 | ||
|
|
7577703d64 | ||
|
|
b24d62a695 | ||
|
|
e541446631 | ||
|
|
e2d86354fc | ||
|
|
1ce18043d5 | ||
|
|
4005c20f7e | ||
|
|
5bcf245ed9 | ||
|
|
402e07c844 | ||
|
|
8404baecd8 | ||
|
|
3c0e3a1208 | ||
|
|
cb35dcf971 | ||
|
|
41418bcf45 | ||
|
|
132b08b40e | ||
|
|
dbbaae78f7 | ||
|
|
585780d415 | ||
|
|
44b9979f02 | ||
|
|
0749c87ce7 | ||
|
|
e5f7059a5e | ||
|
|
d15472f417 | ||
|
|
726bfe623c | ||
|
|
e47a57af8c | ||
|
|
f673f17407 | ||
|
|
829833f242 | ||
|
|
94c3ade7fc | ||
|
|
4a27ef4b2c | ||
|
|
59b43884ff | ||
|
|
219fe55356 | ||
|
|
9136c2a167 | ||
|
|
114bc364e3 | ||
|
|
2caad9964f | ||
|
|
d573007747 | ||
|
|
f054b1c251 | ||
|
|
7a2358272a | ||
|
|
8a6a75b7a2 | ||
|
|
8cf678fb27 | ||
|
|
a20c6dc907 | ||
|
|
37ff8bb60d | ||
|
|
b6ac055857 | ||
|
|
12e53a1468 | ||
|
|
b21123e1cd | ||
|
|
f1db949abc | ||
|
|
761c6529a2 | ||
|
|
1f832fa294 | ||
|
|
be569aee4f | ||
|
|
419e94ccec | ||
|
|
12bc5265b8 | ||
|
|
32898f0c57 | ||
|
|
125c9abf56 | ||
|
|
bc27db4a69 | ||
|
|
dd8e2b13d3 | ||
|
|
005e3b941c | ||
|
|
efa614c773 | ||
|
|
63350e5492 | ||
|
|
255c128b67 | ||
|
|
06f333395e | ||
|
|
3cd024ea2c | ||
|
|
9c0a407db6 | ||
|
|
dc3c619f3f | ||
|
|
5000aafba6 | ||
|
|
b9f2a39d50 | ||
|
|
df321191f4 | ||
|
|
547eb41e96 | ||
|
|
afbb83e081 | ||
|
|
b599968570 | ||
|
|
24cc60f34e | ||
|
|
f967058409 | ||
|
|
078e09ba76 | ||
|
|
d6f97841d4 | ||
|
|
619ac124b3 | ||
|
|
a2180e123d | ||
|
|
0325bb7e2d | ||
|
|
fce361e5bd | ||
|
|
ed6d6e8b9d | ||
|
|
406709f66b | ||
|
|
3ac45a2211 | ||
|
|
716f886780 | ||
|
|
4ef498f0c3 | ||
|
|
5e764e61ba | ||
|
|
1466632fd6 | ||
|
|
0c43e5c3f4 | ||
|
|
7e9d581277 | ||
|
|
c928972137 | ||
|
|
78884e3806 | ||
|
|
f6ac7e047e | ||
|
|
e1fdf3fb28 | ||
|
|
e4510cbc18 | ||
|
|
2c14142e19 | ||
|
|
1caa3f2ce8 | ||
|
|
6501a4b13f | ||
|
|
2f51621e69 | ||
|
|
7e6e64c729 | ||
|
|
9007c7dd14 | ||
|
|
850fd3e371 | ||
|
|
6d8f1c439e | ||
|
|
7166717688 | ||
|
|
f91346dc5b | ||
|
|
dccdfb5533 | ||
|
|
4f065bdedf | ||
|
|
4a02c5848b | ||
|
|
e16a926ef8 | ||
|
|
78f4978a9a | ||
|
|
42d617caf9 | ||
|
|
28eb8784a9 | ||
|
|
fcf5d5c9f7 | ||
|
|
a42f1ff4ee | ||
|
|
98f897ed5b | ||
|
|
7afd608faa | ||
|
|
8313a62f17 | ||
|
|
459e2bf61c | ||
|
|
858d363e97 | ||
|
|
47704189d1 | ||
|
|
b72d424ec9 | ||
|
|
86426e95f7 | ||
|
|
e5f7870f5e | ||
|
|
c0ee739624 | ||
|
|
1dc99498d9 | ||
|
|
319d96c725 | ||
|
|
6d58290a89 | ||
|
|
666904f902 | ||
|
|
064533d8aa | ||
|
|
1768af9026 | ||
|
|
cb7513e9f0 | ||
|
|
645b45cf35 | ||
|
|
9f6d965ba2 | ||
|
|
5348400665 | ||
|
|
812fd5f253 | ||
|
|
da9b393e1b | ||
|
|
aeaa1a23ce | ||
|
|
a8d403a216 | ||
|
|
7bd898b2c7 | ||
|
|
dad66db49a | ||
|
|
adf3f929a4 | ||
|
|
3b23e877b5 | ||
|
|
af4bebb6eb | ||
|
|
8530eb5368 | ||
|
|
0ba1e76400 | ||
|
|
94096ee657 | ||
|
|
c59387c2b4 | ||
|
|
c5a3eff745 | ||
|
|
624891ae1f | ||
|
|
83435e1ab9 | ||
|
|
2b4606e773 | ||
|
|
30f5943f8a | ||
|
|
412ac0a603 | ||
|
|
b2aa1349f8 | ||
|
|
8b62aec7fb | ||
|
|
83fe33b499 | ||
|
|
54d0a1d342 | ||
|
|
c59737a71d | ||
|
|
7c2ba707eb | ||
|
|
545a890c45 | ||
|
|
4b42308484 | ||
|
|
5a95fed35b | ||
|
|
f880e3976f | ||
|
|
25fa2f3275 | ||
|
|
9f005b7537 | ||
|
|
1ad6e977f2 | ||
|
|
e9a64c5479 | ||
|
|
a2e7259ccb | ||
|
|
d28e66a353 | ||
|
|
e0ff6623bb | ||
|
|
3d59e9ac30 | ||
|
|
cff712f071 | ||
|
|
b8bca9d2fe | ||
|
|
a6ccae52d2 | ||
|
|
bdfa6dc9bf | ||
|
|
6eb5731eb5 | ||
|
|
953574f7a3 | ||
|
|
8ec6d695de | ||
|
|
47274817fa | ||
|
|
3b123c6182 | ||
|
|
d7f72e0c41 | ||
|
|
c0bf9c5da8 | ||
|
|
16a6524b11 | ||
|
|
c1963c6122 | ||
|
|
73154e8dd7 | ||
|
|
e2e8cbe46c | ||
|
|
b9b776c278 | ||
|
|
7710df62ee | ||
|
|
63e1c554b7 | ||
|
|
a9d8f3fc41 | ||
|
|
59bf546b4a | ||
|
|
c3e34dc220 | ||
|
|
cd547e9425 | ||
|
|
d98b70f0ca | ||
|
|
7ff009ec43 | ||
|
|
3760c783d0 | ||
|
|
a8be3c72aa | ||
|
|
ee8242d72a | ||
|
|
88b697f072 | ||
|
|
1dabfb4ead | ||
|
|
410920823a | ||
|
|
3ffaeceaf4 | ||
|
|
add9023b74 | ||
|
|
af8eb9a147 | ||
|
|
1201dcf546 | ||
|
|
7bf25c897c | ||
|
|
27a57b1e51 | ||
|
|
c03642fdb1 | ||
|
|
d5b689e254 | ||
|
|
ac6e2f29e4 |
@@ -4,3 +4,4 @@ target/
|
|||||||
console
|
console
|
||||||
!console/
|
!console/
|
||||||
portal-ui/node_modules/
|
portal-ui/node_modules/
|
||||||
|
.git/
|
||||||
|
|||||||
52
.github/workflows/codeql.yml
vendored
52
.github/workflows/codeql.yml
vendored
@@ -1,52 +0,0 @@
|
|||||||
name: "Code scanning - action"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
pull_request:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 19 * * 0'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
CodeQL-Build:
|
|
||||||
|
|
||||||
# CodeQL runs on ubuntu-latest and windows-latest
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
# We must fetch at least the immediate parents so that if this is
|
|
||||||
# a pull request then we can checkout the head.
|
|
||||||
fetch-depth: 2
|
|
||||||
|
|
||||||
# If this run was triggered by a pull request event, then checkout
|
|
||||||
# the head of the pull request instead of the merge commit.
|
|
||||||
- run: git checkout HEAD^2
|
|
||||||
if: ${{ github.event_name == 'pull_request' }}
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v1
|
|
||||||
# Override language selection by uncommenting this and choosing your languages
|
|
||||||
# with:
|
|
||||||
# languages: go, javascript, csharp, python, cpp, java
|
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@v1
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
|
|
||||||
#- run: |
|
|
||||||
# make bootstrap
|
|
||||||
# make release
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v1
|
|
||||||
34
.github/workflows/compiles.yml
vendored
Normal file
34
.github/workflows/compiles.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Compiles on Go ${{ matrix.go-version }} and ${{ matrix.os }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make console
|
||||||
34
.github/workflows/crosscompile-1.yml
vendored
Normal file
34
.github/workflows/crosscompile-1.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Cross compile
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make crosscompile arg1="'linux/ppc64le linux/mips64'"
|
||||||
34
.github/workflows/crosscompile-2.yml
vendored
Normal file
34
.github/workflows/crosscompile-2.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Cross compile
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make crosscompile arg1="'linux/arm64 linux/s390x'"
|
||||||
34
.github/workflows/crosscompile-3.yml
vendored
Normal file
34
.github/workflows/crosscompile-3.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Cross compile
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make crosscompile arg1="'darwin/amd64 freebsd/amd64'"
|
||||||
34
.github/workflows/crosscompile-4.yml
vendored
Normal file
34
.github/workflows/crosscompile-4.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Cross compile
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make crosscompile arg1="'windows/amd64 linux/arm'"
|
||||||
34
.github/workflows/crosscompile-5.yml
vendored
Normal file
34
.github/workflows/crosscompile-5.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Cross compile
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make crosscompile arg1="'linux/386 netbsd/amd64'"
|
||||||
34
.github/workflows/go-test-pkg.yml
vendored
Normal file
34
.github/workflows/go-test-pkg.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Test Pkg on Go ${{ matrix.go-version }} and ${{ matrix.os }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make test-pkg
|
||||||
10
.github/workflows/go.yml
vendored
10
.github/workflows/go.yml
vendored
@@ -3,18 +3,18 @@ name: Go
|
|||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
name: Test on Go ${{ matrix.go-version }} and ${{ matrix.os }}
|
name: Test Restapi on Go ${{ matrix.go-version }} and ${{ matrix.os }}
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
go-version: [1.13.x, 1.14.x]
|
go-version: [1.16.x]
|
||||||
os: [ubuntu-latest]
|
os: [ubuntu-latest]
|
||||||
steps:
|
steps:
|
||||||
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
@@ -31,6 +31,4 @@ jobs:
|
|||||||
GO111MODULE: on
|
GO111MODULE: on
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
run: |
|
run: |
|
||||||
make verifiers
|
|
||||||
make test
|
make test
|
||||||
make console
|
|
||||||
|
|||||||
39
.github/workflows/integration.yml
vendored
Normal file
39
.github/workflows/integration.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Integration Tests with Latest Distributed MinIO
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
CGO_ENABLED: 0
|
||||||
|
run: |
|
||||||
|
wget -O /tmp/minio https://dl.minio.io/server/minio/release/linux-amd64/minio
|
||||||
|
chmod +x /tmp/minio
|
||||||
|
mkdir -p /tmp/certs-dir
|
||||||
|
/tmp/minio server --quiet -S /tmp/certs-dir /tmp/fs{1...4} &
|
||||||
|
go test github.com/minio/console/integration/...
|
||||||
34
.github/workflows/lint.yml
vendored
Normal file
34
.github/workflows/lint.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Go
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Checking Lint
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
go-version: [1.16.x]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
|
||||||
|
uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: ${{ matrix.go-version }}
|
||||||
|
id: go
|
||||||
|
|
||||||
|
- name: Check out code into the Go module directory
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Build on ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
GO111MODULE: on
|
||||||
|
GOOS: linux
|
||||||
|
run: |
|
||||||
|
make verifiers
|
||||||
15
.github/workflows/react.yml
vendored
Normal file
15
.github/workflows/react.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
name: "React Tests"
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install modules
|
||||||
|
working-directory: ./portal-ui
|
||||||
|
run: yarn
|
||||||
|
- name: Run tests
|
||||||
|
working-directory: ./portal-ui
|
||||||
|
run: yarn test
|
||||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -24,6 +24,10 @@ console
|
|||||||
|
|
||||||
dist/
|
dist/
|
||||||
|
|
||||||
|
# Ignore node_modules
|
||||||
|
|
||||||
|
portal-ui/node_modules/
|
||||||
|
|
||||||
# Ignore tls cert and key
|
# Ignore tls cert and key
|
||||||
private.key
|
private.key
|
||||||
public.crt
|
public.crt
|
||||||
@@ -32,3 +36,4 @@ public.crt
|
|||||||
.vscode/
|
.vscode/
|
||||||
*.code-workspace
|
*.code-workspace
|
||||||
*~
|
*~
|
||||||
|
.eslintcache
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ linters:
|
|||||||
- goimports
|
- goimports
|
||||||
- misspell
|
- misspell
|
||||||
- govet
|
- govet
|
||||||
- golint
|
- revive
|
||||||
- ineffassign
|
- ineffassign
|
||||||
- gosimple
|
- gosimple
|
||||||
- deadcode
|
- deadcode
|
||||||
@@ -21,8 +21,18 @@ linters:
|
|||||||
- structcheck
|
- structcheck
|
||||||
|
|
||||||
service:
|
service:
|
||||||
golangci-lint-version: 1.21.0 # use the fixed version to not introduce new linters unexpectedly
|
golangci-lint-version: 1.27.0 # use the fixed version to not introduce new linters unexpectedly
|
||||||
|
|
||||||
|
issues:
|
||||||
|
exclude-use-default: false
|
||||||
|
exclude:
|
||||||
|
- should have a package comment
|
||||||
|
# TODO(y4m4): Remove once all exported ident. have comments!
|
||||||
|
- comment on exported function
|
||||||
|
- comment on exported type
|
||||||
|
- should have comment
|
||||||
|
- use leading k in Go names
|
||||||
|
- comment on exported const
|
||||||
run:
|
run:
|
||||||
skip-dirs:
|
skip-dirs:
|
||||||
- pkg/clientgen
|
- pkg/clientgen
|
||||||
|
|||||||
192
.goreleaser.yml
192
.goreleaser.yml
@@ -2,74 +2,194 @@
|
|||||||
# Make sure to check the documentation at http://goreleaser.com
|
# Make sure to check the documentation at http://goreleaser.com
|
||||||
project_name: console
|
project_name: console
|
||||||
|
|
||||||
|
release:
|
||||||
|
name_template: "Release version {{.Tag}}"
|
||||||
|
github:
|
||||||
|
owner: minio
|
||||||
|
name: console
|
||||||
|
extra_files:
|
||||||
|
- glob: "*.minisig"
|
||||||
|
|
||||||
before:
|
before:
|
||||||
hooks:
|
hooks:
|
||||||
# you may remove this if you don't use vgo
|
# you may remove this if you don't use vgo
|
||||||
- go mod tidy
|
- go mod tidy
|
||||||
|
|
||||||
builds:
|
builds:
|
||||||
-
|
-
|
||||||
goos:
|
goos:
|
||||||
- freebsd
|
|
||||||
- windows
|
|
||||||
- linux
|
- linux
|
||||||
- darwin
|
- darwin
|
||||||
|
- windows
|
||||||
goarch:
|
goarch:
|
||||||
- amd64
|
- amd64
|
||||||
|
- ppc64le
|
||||||
|
- s390x
|
||||||
- arm64
|
- arm64
|
||||||
|
ignore:
|
||||||
|
- goos: darwin
|
||||||
|
goarch: arm
|
||||||
|
- goos: windows
|
||||||
|
goarch: arm64
|
||||||
|
- goos: windows
|
||||||
|
goarch: arm
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=0
|
- CGO_ENABLED=0
|
||||||
|
|
||||||
main: ./cmd/console/
|
main: ./cmd/console/
|
||||||
|
|
||||||
flags:
|
flags:
|
||||||
- -trimpath
|
- -trimpath
|
||||||
- --tags=kqueue
|
- --tags=kqueue
|
||||||
|
|
||||||
ldflags:
|
ldflags:
|
||||||
- -s -w -X github.com/minio/console/pkg.ReleaseTag={{.Tag}} -X github.com/minio/console/pkg.CommitID={{.FullCommit}} -X github.com/minio/console/pkg.Version={{.Version}} -X github.com/minio/console/pkg.ShortCommitID={{.ShortCommit}} -X github.com/minio/console/pkg.ReleaseTime={{.Date}}
|
- -s -w -X github.com/minio/console/pkg.ReleaseTag={{.Tag}} -X github.com/minio/console/pkg.CommitID={{.FullCommit}} -X github.com/minio/console/pkg.Version={{.Version}} -X github.com/minio/console/pkg.ShortCommitID={{.ShortCommit}} -X github.com/minio/console/pkg.ReleaseTime={{.Date}}
|
||||||
|
|
||||||
archives:
|
archives:
|
||||||
-
|
-
|
||||||
|
name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}"
|
||||||
|
format: binary
|
||||||
replacements:
|
replacements:
|
||||||
darwin: Darwin
|
arm: arm
|
||||||
linux: Linux
|
|
||||||
windows: Windows
|
signs:
|
||||||
freebsd: FreeBSD
|
-
|
||||||
amd64: x86_64
|
signature: "${artifact}.minisig"
|
||||||
format_overrides:
|
cmd: "sh"
|
||||||
- goos: windows
|
args:
|
||||||
format: zip
|
- '-c'
|
||||||
files:
|
- 'minisign -s /media/${USER}/minio/minisign.key -Sm ${artifact} < /media/${USER}/minio/minisign-passphrase'
|
||||||
- README.md
|
artifacts: all
|
||||||
- LICENSE
|
|
||||||
checksum:
|
|
||||||
name_template: 'checksums.txt'
|
|
||||||
snapshot:
|
snapshot:
|
||||||
name_template: 'snapshot-{{ time "2006-01-02" }}'
|
name_template: v0.0.0@{{.ShortCommit}}
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
sort: asc
|
sort: asc
|
||||||
filters:
|
|
||||||
exclude:
|
|
||||||
- '^docs:'
|
|
||||||
- '^test:'
|
|
||||||
nfpms:
|
nfpms:
|
||||||
-
|
-
|
||||||
vendor: MinIO Inc.
|
vendor: MinIO, Inc.
|
||||||
homepage: https://github.com/minio/console
|
homepage: https://github.com/minio/console
|
||||||
maintainer: MinIO <minio@minio.io>
|
maintainer: MinIO Development <dev@min.io>
|
||||||
description: MinIO Console Server
|
description: MinIO Console Server
|
||||||
license: GNU Affero General Public License v3.0
|
license: GNU Affero General Public License v3.0
|
||||||
formats:
|
formats:
|
||||||
- deb
|
- deb
|
||||||
- rpm
|
- rpm
|
||||||
replacements:
|
contents:
|
||||||
darwin: Darwin
|
# Basic file that applies to all packagers
|
||||||
linux: Linux
|
- src: systemd/console.service
|
||||||
freebsd: FreeBSD
|
dst: /etc/systemd/system/minio-console.service
|
||||||
amd64: x86_64
|
|
||||||
dockers:
|
dockers:
|
||||||
-
|
- image_templates:
|
||||||
# GOOS of the built binary that should be used.
|
- "minio/console:{{ .Tag }}-amd64"
|
||||||
goos: linux
|
use_buildx: true
|
||||||
# GOARCH of the built binary that should be used.
|
goarch: amd64
|
||||||
goarch: amd64
|
dockerfile: Dockerfile.release
|
||||||
dockerfile: Dockerfile.release
|
extra_files:
|
||||||
image_templates:
|
- LICENSE
|
||||||
- "minio/console:{{ .Tag }}"
|
- CREDITS
|
||||||
- "minio/console:latest"
|
build_flag_templates:
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
- image_templates:
|
||||||
|
- "minio/console:{{ .Tag }}-ppc64le"
|
||||||
|
use_buildx: true
|
||||||
|
goarch: ppc64le
|
||||||
|
dockerfile: Dockerfile.release
|
||||||
|
extra_files:
|
||||||
|
- LICENSE
|
||||||
|
- CREDITS
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/ppc64le"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
- image_templates:
|
||||||
|
- "minio/console:{{ .Tag }}-s390x"
|
||||||
|
use_buildx: true
|
||||||
|
goarch: s390x
|
||||||
|
dockerfile: Dockerfile.release
|
||||||
|
extra_files:
|
||||||
|
- LICENSE
|
||||||
|
- CREDITS
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/s390x"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
- image_templates:
|
||||||
|
- "minio/console:{{ .Tag }}-arm64"
|
||||||
|
use_buildx: true
|
||||||
|
goarch: arm64
|
||||||
|
goos: linux
|
||||||
|
dockerfile: Dockerfile.release
|
||||||
|
extra_files:
|
||||||
|
- LICENSE
|
||||||
|
- CREDITS
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/arm64"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
- image_templates:
|
||||||
|
- "quay.io/minio/console:{{ .Tag }}-amd64"
|
||||||
|
use_buildx: true
|
||||||
|
goarch: amd64
|
||||||
|
dockerfile: Dockerfile.release
|
||||||
|
extra_files:
|
||||||
|
- LICENSE
|
||||||
|
- CREDITS
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
- image_templates:
|
||||||
|
- "quay.io/minio/console:{{ .Tag }}-ppc64le"
|
||||||
|
use_buildx: true
|
||||||
|
goarch: ppc64le
|
||||||
|
dockerfile: Dockerfile.release
|
||||||
|
extra_files:
|
||||||
|
- LICENSE
|
||||||
|
- CREDITS
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/ppc64le"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
- image_templates:
|
||||||
|
- "quay.io/minio/console:{{ .Tag }}-s390x"
|
||||||
|
use_buildx: true
|
||||||
|
goarch: s390x
|
||||||
|
dockerfile: Dockerfile.release
|
||||||
|
extra_files:
|
||||||
|
- LICENSE
|
||||||
|
- CREDITS
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/s390x"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
- image_templates:
|
||||||
|
- "quay.io/minio/console:{{ .Tag }}-arm64"
|
||||||
|
use_buildx: true
|
||||||
|
goarch: arm64
|
||||||
|
goos: linux
|
||||||
|
dockerfile: Dockerfile.release
|
||||||
|
extra_files:
|
||||||
|
- LICENSE
|
||||||
|
- CREDITS
|
||||||
|
build_flag_templates:
|
||||||
|
- "--platform=linux/arm64"
|
||||||
|
- "--build-arg=TAG={{ .Tag }}"
|
||||||
|
docker_manifests:
|
||||||
|
- name_template: minio/console:{{ .Tag }}
|
||||||
|
image_templates:
|
||||||
|
- minio/console:{{ .Tag }}-amd64
|
||||||
|
- minio/console:{{ .Tag }}-arm64
|
||||||
|
- minio/console:{{ .Tag }}-ppc64le
|
||||||
|
- minio/console:{{ .Tag }}-s390x
|
||||||
|
- name_template: quay.io/minio/console:{{ .Tag }}
|
||||||
|
image_templates:
|
||||||
|
- quay.io/minio/console:{{ .Tag }}-amd64
|
||||||
|
- quay.io/minio/console:{{ .Tag }}-arm64
|
||||||
|
- quay.io/minio/console:{{ .Tag }}-ppc64le
|
||||||
|
- quay.io/minio/console:{{ .Tag }}-s390x
|
||||||
|
- name_template: minio/console:latest
|
||||||
|
image_templates:
|
||||||
|
- minio/console:{{ .Tag }}-amd64
|
||||||
|
- minio/console:{{ .Tag }}-arm64
|
||||||
|
- minio/console:{{ .Tag }}-ppc64le
|
||||||
|
- minio/console:{{ .Tag }}-s390x
|
||||||
|
|||||||
@@ -11,41 +11,8 @@ $ docker run --rm -p 389:389 -p 636:636 --name my-openldap-container --detach os
|
|||||||
Run the `billy.ldif` file using `ldapadd` command to create a new user and assign it to a group.
|
Run the `billy.ldif` file using `ldapadd` command to create a new user and assign it to a group.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cat > billy.ldif << EOF
|
$ docker cp console/docs/ldap/billy.ldif my-openldap-container:/container/service/slapd/assets/test/billy.ldif
|
||||||
# LDIF fragment to create group branch under root
|
$ docker exec my-openldap-container ldapadd -x -D "cn=admin,dc=example,dc=org" -w admin -f /container/service/slapd/assets/test/billy.ldif -H ldap://localhost
|
||||||
dn: uid=billy,dc=example,dc=org
|
|
||||||
uid: billy
|
|
||||||
cn: billy
|
|
||||||
sn: 3
|
|
||||||
objectClass: top
|
|
||||||
objectClass: posixAccount
|
|
||||||
objectClass: inetOrgPerson
|
|
||||||
loginShell: /bin/bash
|
|
||||||
homeDirectory: /home/billy
|
|
||||||
uidNumber: 14583102
|
|
||||||
gidNumber: 14564100
|
|
||||||
userPassword: {SSHA}j3lBh1Seqe4rqF1+NuWmjhvtAni1JC5A
|
|
||||||
mail: billy@example.org
|
|
||||||
gecos: Billy User
|
|
||||||
# Create base group
|
|
||||||
dn: ou=groups,dc=example,dc=org
|
|
||||||
objectclass:organizationalunit
|
|
||||||
ou: groups
|
|
||||||
description: generic groups branch
|
|
||||||
# create consoleAdmin group (this already exists on minio and have a policy of s3::*)
|
|
||||||
dn: cn=consoleAdmin,ou=groups,dc=example,dc=org
|
|
||||||
objectClass: top
|
|
||||||
objectClass: posixGroup
|
|
||||||
gidNumber: 678
|
|
||||||
# Assing group to new user
|
|
||||||
dn: cn=consoleAdmin,ou=groups,dc=example,dc=org
|
|
||||||
changetype: modify
|
|
||||||
add: memberuid
|
|
||||||
memberuid: billy
|
|
||||||
EOF
|
|
||||||
|
|
||||||
$ docker cp billy.ldif my-openldap-container:/container/service/slapd/assets/test/billy.ldif
|
|
||||||
$ docker exec my-openldap-container ldapadd -x -D "cn=admin,dc=example,dc=org" -w admin -f /container/service/slapd/assets/test/billy.ldif -H ldap://localhost -ZZ
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Query the ldap server to check the user billy was created correctly and got assigned to the consoleAdmin group, you should get a list
|
Query the ldap server to check the user billy was created correctly and got assigned to the consoleAdmin group, you should get a list
|
||||||
@@ -100,7 +67,7 @@ $ cat > consoleAdmin.json << EOF
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
$ mc admin policy add myminio consoleAdmin consoleAdmin.json
|
$ mc admin policy add myminio consoleAdmin consoleAdmin.json
|
||||||
$ mc admin policy set myminio consoleAdmin user=billy
|
$ mc admin policy set myminio consoleAdmin user="uid=billy,dc=example,dc=org"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run MinIO
|
## Run MinIO
|
||||||
@@ -119,9 +86,6 @@ export MINIO_IDENTITY_LDAP_SERVER_INSECURE=on
|
|||||||
## Run Console
|
## Run Console
|
||||||
|
|
||||||
```
|
```
|
||||||
export CONSOLE_ACCESS_KEY=minio
|
|
||||||
export CONSOLE_SECRET_KEY=minio123
|
|
||||||
...
|
|
||||||
export CONSOLE_LDAP_ENABLED=on
|
export CONSOLE_LDAP_ENABLED=on
|
||||||
./console server
|
./console server
|
||||||
```
|
```
|
||||||
|
|||||||
26
Dockerfile
26
Dockerfile
@@ -1,4 +1,18 @@
|
|||||||
FROM golang:1.13
|
FROM node:10 as uilayer
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY ./portal-ui/package.json ./
|
||||||
|
COPY ./portal-ui/yarn.lock ./
|
||||||
|
RUN yarn install
|
||||||
|
|
||||||
|
COPY ./portal-ui .
|
||||||
|
|
||||||
|
RUN yarn install && make build-static
|
||||||
|
|
||||||
|
USER node
|
||||||
|
|
||||||
|
FROM golang:1.16 as golayer
|
||||||
|
|
||||||
RUN apt-get update -y && apt-get install -y ca-certificates
|
RUN apt-get update -y && apt-get install -y ca-certificates
|
||||||
|
|
||||||
@@ -14,13 +28,15 @@ WORKDIR /go/src/github.com/minio/console/
|
|||||||
|
|
||||||
ENV CGO_ENABLED=0
|
ENV CGO_ENABLED=0
|
||||||
|
|
||||||
|
COPY --from=uilayer /app/build /go/src/github.com/minio/console/portal-ui/build
|
||||||
RUN go build -ldflags "-w -s" -a -o console ./cmd/console
|
RUN go build -ldflags "-w -s" -a -o console ./cmd/console
|
||||||
|
|
||||||
FROM scratch
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3
|
||||||
MAINTAINER MinIO Development "dev@min.io"
|
MAINTAINER MinIO Development "dev@min.io"
|
||||||
EXPOSE 9090
|
EXPOSE 9090
|
||||||
|
|
||||||
COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
|
||||||
COPY --from=0 /go/src/github.com/minio/console/console .
|
|
||||||
|
|
||||||
CMD ["/console"]
|
COPY --from=golayer /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
|
COPY --from=golayer /go/src/github.com/minio/console/console .
|
||||||
|
|
||||||
|
ENTRYPOINT ["/console"]
|
||||||
|
|||||||
13
Dockerfile.assets
Normal file
13
Dockerfile.assets
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
FROM node:10 as uilayer
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY ./portal-ui/package.json ./
|
||||||
|
COPY ./portal-ui/yarn.lock ./
|
||||||
|
RUN yarn install
|
||||||
|
|
||||||
|
COPY ./portal-ui .
|
||||||
|
|
||||||
|
RUN yarn install && make build-static
|
||||||
|
|
||||||
|
USER node
|
||||||
@@ -1,5 +1,22 @@
|
|||||||
FROM scratch
|
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4
|
||||||
MAINTAINER MinIO Development "dev@min.io"
|
|
||||||
|
ARG TAG
|
||||||
|
|
||||||
|
COPY CREDITS /licenses/CREDITS
|
||||||
|
COPY LICENSE /licenses/LICENSE
|
||||||
|
|
||||||
|
LABEL name="MinIO" \
|
||||||
|
vendor="MinIO Inc <dev@min.io>" \
|
||||||
|
maintainer="MinIO Inc <dev@min.io>" \
|
||||||
|
version="${TAG}" \
|
||||||
|
release="${TAG}" \
|
||||||
|
summary="A graphical user interface for MinIO" \
|
||||||
|
description="MinIO object storage is fundamentally different. Designed for performance and the S3 API, it is 100% open-source. MinIO is ideal for large, private cloud environments with stringent security requirements and delivers mission-critical availability across a diverse range of workloads."
|
||||||
|
|
||||||
|
RUN \
|
||||||
|
microdnf update --nodocs && \
|
||||||
|
microdnf install ca-certificates --nodocs
|
||||||
|
|
||||||
EXPOSE 9090
|
EXPOSE 9090
|
||||||
COPY console /console
|
COPY console /console
|
||||||
|
|
||||||
|
|||||||
32
Makefile
32
Makefile
@@ -3,7 +3,7 @@ GOPATH := $(shell go env GOPATH)
|
|||||||
# Sets the build version based on the output of the following command, if we are building for a tag, that's the build else it uses the current git branch as the build
|
# Sets the build version based on the output of the following command, if we are building for a tag, that's the build else it uses the current git branch as the build
|
||||||
BUILD_VERSION:=$(shell git describe --exact-match --tags $(git log -n1 --pretty='%h') 2>/dev/null || git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
BUILD_VERSION:=$(shell git describe --exact-match --tags $(git log -n1 --pretty='%h') 2>/dev/null || git rev-parse --abbrev-ref HEAD 2>/dev/null)
|
||||||
BUILD_TIME:=$(shell date 2>/dev/null)
|
BUILD_TIME:=$(shell date 2>/dev/null)
|
||||||
TAG ?= "minio/console:$(VERSION)-dev"
|
TAG ?= "minio/console:$(BUILD_VERSION)-dev"
|
||||||
|
|
||||||
default: console
|
default: console
|
||||||
|
|
||||||
@@ -19,14 +19,19 @@ k8sdev:
|
|||||||
|
|
||||||
getdeps:
|
getdeps:
|
||||||
@mkdir -p ${GOPATH}/bin
|
@mkdir -p ${GOPATH}/bin
|
||||||
@which golangci-lint 1>/dev/null || (echo "Installing golangci-lint" && curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOPATH)/bin v1.27.0)
|
@which golangci-lint 1>/dev/null || (echo "Installing golangci-lint" && curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(GOPATH)/bin v1.40.1)
|
||||||
|
|
||||||
verifiers: getdeps fmt lint
|
verifiers: getdeps fmt lint
|
||||||
|
|
||||||
fmt:
|
fmt:
|
||||||
@echo "Running $@ check"
|
@echo "Running $@ check"
|
||||||
@GO111MODULE=on gofmt -d cmd/
|
@GO111MODULE=on gofmt -d restapi/
|
||||||
@GO111MODULE=on gofmt -d pkg/
|
@GO111MODULE=on gofmt -d pkg/
|
||||||
|
@GO111MODULE=on gofmt -d cmd/
|
||||||
|
@GO111MODULE=on gofmt -d cluster/
|
||||||
|
|
||||||
|
crosscompile:
|
||||||
|
@(env bash $(PWD)/cross-compile.sh $(arg1))
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
@echo "Running $@ check"
|
@echo "Running $@ check"
|
||||||
@@ -38,17 +43,30 @@ install: console
|
|||||||
@mkdir -p $(GOPATH)/bin && cp -f $(PWD)/console $(GOPATH)/bin/console
|
@mkdir -p $(GOPATH)/bin && cp -f $(PWD)/console $(GOPATH)/bin/console
|
||||||
@echo "Installation successful. To learn more, try \"console --help\"."
|
@echo "Installation successful. To learn more, try \"console --help\"."
|
||||||
|
|
||||||
swagger-gen:
|
swagger-gen: clean-swagger swagger-console swagger-operator
|
||||||
@echo "Generating swagger server code from yaml"
|
@echo "Done Generating swagger server code from yaml"
|
||||||
|
|
||||||
|
clean-swagger:
|
||||||
|
@echo "cleaning"
|
||||||
@rm -rf models
|
@rm -rf models
|
||||||
@rm -rf restapi/operations
|
@rm -rf restapi/operations
|
||||||
@swagger generate server -A console --main-package=console --exclude-main -P models.Principal -f ./swagger.yml -r NOTICE
|
@rm -rf operatorapi/operations
|
||||||
|
|
||||||
|
swagger-console:
|
||||||
|
@echo "Generating swagger server code from yaml"
|
||||||
|
@swagger generate server -A console --main-package=management --server-package=restapi --exclude-main -P models.Principal -f ./swagger-console.yml -r NOTICE
|
||||||
|
|
||||||
|
swagger-operator:
|
||||||
|
@echo "Generating swagger server code from yaml"
|
||||||
|
@swagger generate server -A operator --main-package=operator --server-package=operatorapi --exclude-main -P models.Principal -f ./swagger-operator.yml -r NOTICE
|
||||||
|
|
||||||
assets:
|
assets:
|
||||||
@(cd portal-ui; yarn install; make build-static; cd ..)
|
@(cd portal-ui; yarn install; make build-static; yarn prettier --write . --loglevel warn; cd ..)
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@(GO111MODULE=on go test -race -v github.com/minio/console/restapi/...)
|
@(GO111MODULE=on go test -race -v github.com/minio/console/restapi/...)
|
||||||
|
|
||||||
|
test-pkg:
|
||||||
@(GO111MODULE=on go test -race -v github.com/minio/console/pkg/...)
|
@(GO111MODULE=on go test -race -v github.com/minio/console/pkg/...)
|
||||||
|
|
||||||
coverage:
|
coverage:
|
||||||
|
|||||||
2
NOTICE
2
NOTICE
@@ -1,5 +1,5 @@
|
|||||||
This file is part of MinIO Console Server
|
This file is part of MinIO Console Server
|
||||||
Copyright (c) 2020 MinIO, Inc.
|
Copyright (c) 2021 MinIO, Inc.
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Affero General Public License as published by
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|||||||
152
README.md
152
README.md
@@ -1,28 +1,83 @@
|
|||||||
# MinIO Console
|
# MinIO Console
|
||||||
|
|
||||||
|
 
|
||||||
|
|
||||||
A graphical user interface for [MinIO](https://github.com/minio/minio)
|
A graphical user interface for [MinIO](https://github.com/minio/minio)
|
||||||
|
|
||||||
|
| Dashboard | Creating a bucket |
|
||||||
|
| ------------- | ------------- |
|
||||||
|
|  |  |
|
||||||
|
|
||||||
| Dashboard | Adding A User |
|
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-refresh-toc -->
|
||||||
| ------------- | ------------- |
|
**Table of Contents**
|
||||||
|  |  |
|
|
||||||
|
- [MinIO Console](#minio-console)
|
||||||
|
- [Install](#install)
|
||||||
|
- [Binary Releases](#binary-releases)
|
||||||
|
- [Docker](#docker)
|
||||||
|
- [Build from source](#build-from-source)
|
||||||
|
- [Setup](#setup)
|
||||||
|
- [1. Create a user `console` using `mc`](#1-create-a-user-console-using-mc)
|
||||||
|
- [2. Create a policy for `console` with admin access to all resources (for testing)](#2-create-a-policy-for-console-with-admin-access-to-all-resources-for-testing)
|
||||||
|
- [3. Set the policy for the new `console` user](#3-set-the-policy-for-the-new-console-user)
|
||||||
|
- [Start Console service:](#start-console-service)
|
||||||
|
- [Start Console service with TLS:](#start-console-service-with-tls)
|
||||||
|
- [Connect Console to a Minio using TLS and a self-signed certificate](#connect-console-to-a-minio-using-tls-and-a-self-signed-certificate)
|
||||||
|
- [Contribute to console Project](#contribute-to-console-project)
|
||||||
|
|
||||||
|
<!-- markdown-toc end -->
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
### Binary Releases
|
||||||
|
|
||||||
|
| OS | ARCH | Binary |
|
||||||
|
|:-------:|:-------:|:----------------------------------------------------------------------------------------------------:|
|
||||||
|
| Linux | amd64 | [linux-amd64](https://github.com/minio/console/releases/latest/download/console-linux-amd64) |
|
||||||
|
| Linux | arm64 | [linux-arm64](https://github.com/minio/console/releases/latest/download/console-linux-arm64) |
|
||||||
|
| Linux | ppc64le | [linux-ppc64le](https://github.com/minio/console/releases/latest/download/console-linux-ppc64le) |
|
||||||
|
| Linux | s390x | [linux-s390x](https://github.com/minio/console/releases/latest/download/console-linux-s390x) |
|
||||||
|
| Apple | amd64 | [darwin-amd64](https://github.com/minio/console/releases/latest/download/console-darwin-amd64) |
|
||||||
|
| Windows | amd64 | [windows-amd64](https://github.com/minio/console/releases/latest/download/console-windows-amd64.exe) |
|
||||||
|
|
||||||
|
You can also verify the binary with [minisign](https://jedisct1.github.io/minisign/) by downloading the corresponding [`.minisig`](https://github.com/minio/console/releases/latest) signature file. Then run:
|
||||||
|
```
|
||||||
|
minisign -Vm console-<OS>-<ARCH> -P RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav
|
||||||
|
```
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
Pull the latest release via:
|
||||||
|
```
|
||||||
|
docker pull minio/console
|
||||||
|
```
|
||||||
|
|
||||||
|
### Build from source
|
||||||
|
|
||||||
|
```
|
||||||
|
GO111MODULE=on go install github.com/minio/console/cmd/console@latest
|
||||||
|
```
|
||||||
|
> You will need a working Go environment. Therefore, please follow [How to install Go](https://golang.org/doc/install).
|
||||||
|
> Minimum version required is go1.16
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
All `console` needs is a MinIO user with admin privileges and URL pointing to your MinIO deployment.
|
All `console` needs is a MinIO user with admin privileges and URL pointing to your MinIO deployment.
|
||||||
|
|
||||||
> Note: We don't recommend using MinIO's Operator Credentials
|
> Note: We don't recommend using MinIO's Operator Credentials
|
||||||
|
|
||||||
1. Create a user for `console` using `mc`.
|
### 1. Create a user `console` using `mc`
|
||||||
```
|
|
||||||
$ set +o history
|
```bash
|
||||||
$ mc admin user add myminio console YOURCONSOLESECRET
|
mc admin user add myminio/
|
||||||
$ set -o history
|
Enter Access Key: console
|
||||||
|
Enter Secret Key: xxxxxxxx
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Create a policy for `console` with access to everything (for testing and debugging)
|
### 2. Create a policy for `console` with admin access to all resources (for testing)
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ cat > consoleAdmin.json << EOF
|
cat > admin.json << EOF
|
||||||
{
|
{
|
||||||
"Version": "2012-10-17",
|
"Version": "2012-10-17",
|
||||||
"Statement": [{
|
"Statement": [{
|
||||||
@@ -45,19 +100,21 @@ $ cat > consoleAdmin.json << EOF
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
$ mc admin policy add myminio consoleAdmin consoleAdmin.json
|
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Set the policy for the new `console` user
|
```sh
|
||||||
|
mc admin policy add myminio/ consoleAdmin admin.json
|
||||||
```
|
|
||||||
$ mc admin policy set myminio consoleAdmin user=console
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 3. Set the policy for the new `console` user
|
||||||
|
|
||||||
### Note
|
```sh
|
||||||
Additionally, you can create policies to limit the privileges for `console` users, for example, if you want the user to only have access to dashboard, buckets, notifications and watch page, the policy should look like this:
|
mc admin policy set myminio consoleAdmin user=console
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> NOTE: Additionally, you can create policies to limit the privileges for other `console` users, for example, if you want the user to only have access to dashboard, buckets, notifications and watch page, the policy should look like this:
|
||||||
|
|
||||||
|
```json
|
||||||
{
|
{
|
||||||
"Version": "2012-10-17",
|
"Version": "2012-10-17",
|
||||||
"Statement": [{
|
"Statement": [{
|
||||||
@@ -97,29 +154,64 @@ Additionally, you can create policies to limit the privileges for `console` user
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run Console server
|
## Start Console service:
|
||||||
To run the server:
|
|
||||||
|
|
||||||
```
|
Before running console service, following environment settings must be supplied
|
||||||
export CONSOLE_HMAC_JWT_SECRET=YOURJWTSIGNINGSECRET
|
```sh
|
||||||
|
# Salt to encrypt JWT payload
|
||||||
#required to encrypt jwet payload
|
|
||||||
export CONSOLE_PBKDF_PASSPHRASE=SECRET
|
export CONSOLE_PBKDF_PASSPHRASE=SECRET
|
||||||
|
|
||||||
#required to encrypt jwet payload
|
# Required to encrypt JWT payload
|
||||||
export CONSOLE_PBKDF_SALT=SECRET
|
export CONSOLE_PBKDF_SALT=SECRET
|
||||||
|
|
||||||
export CONSOLE_ACCESS_KEY=console
|
# MinIO Endpoint
|
||||||
export CONSOLE_SECRET_KEY=YOURCONSOLESECRET
|
|
||||||
export CONSOLE_MINIO_SERVER=http://localhost:9000
|
export CONSOLE_MINIO_SERVER=http://localhost:9000
|
||||||
|
```
|
||||||
|
|
||||||
|
Now start the console service.
|
||||||
|
```
|
||||||
./console server
|
./console server
|
||||||
|
2021-01-19 02:36:08.893735 I | 2021/01/19 02:36:08 server.go:129: Serving console at http://localhost:9090
|
||||||
|
```
|
||||||
|
|
||||||
|
By default `console` runs on port `9090` this can be changed with `--port` of your choice.
|
||||||
|
|
||||||
|
## Start Console service with TLS:
|
||||||
|
|
||||||
|
Copy your `public.crt` and `private.key` to `~/.console/certs`, then:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./console server
|
||||||
|
2021-01-19 02:36:08.893735 I | 2021/01/19 02:36:08 server.go:129: Serving console at http://[::]:9090
|
||||||
|
2021-01-19 02:36:08.893735 I | 2021/01/19 02:36:08 server.go:129: Serving console at https://[::]:9443
|
||||||
|
```
|
||||||
|
|
||||||
|
For advanced users, `console` has support for multiple certificates to service clients through multiple domains.
|
||||||
|
|
||||||
|
Following tree structure is expected for supporting multiple domains:
|
||||||
|
```sh
|
||||||
|
certs/
|
||||||
|
│
|
||||||
|
├─ public.crt
|
||||||
|
├─ private.key
|
||||||
|
│
|
||||||
|
├─ example.com/
|
||||||
|
│ │
|
||||||
|
│ ├─ public.crt
|
||||||
|
│ └─ private.key
|
||||||
|
└─ foobar.org/
|
||||||
|
│
|
||||||
|
├─ public.crt
|
||||||
|
└─ private.key
|
||||||
|
...
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Connect Console to a Minio using TLS and a self-signed certificate
|
## Connect Console to a Minio using TLS and a self-signed certificate
|
||||||
|
|
||||||
```
|
Copy the MinIO `ca.crt` under `~/.console/certs/CAs`, then:
|
||||||
...
|
|
||||||
export CONSOLE_MINIO_SERVER_TLS_ROOT_CAS=<certificate_file_name>
|
```sh
|
||||||
export CONSOLE_MINIO_SERVER=https://localhost:9000
|
export CONSOLE_MINIO_SERVER=https://localhost:9000
|
||||||
./console server
|
./console server
|
||||||
```
|
```
|
||||||
|
|||||||
12
SECURITY.md
12
SECURITY.md
@@ -18,13 +18,13 @@ you need access credentials for a successful exploit).
|
|||||||
|
|
||||||
If you have not received a reply to your email within 48 hours or you have not heard from the security team
|
If you have not received a reply to your email within 48 hours or you have not heard from the security team
|
||||||
for the past five days please contact the security team directly:
|
for the past five days please contact the security team directly:
|
||||||
- Primary security coordinator: lenin@min.io
|
- Primary security coordinator: lenin@min.io
|
||||||
- Secondary coordinator: daniel@min.io, cesar@min.io
|
- Secondary coordinator: security@min.io
|
||||||
- If you receive no response: dev@min.io
|
- If you receive no response: dev@min.io
|
||||||
|
|
||||||
### Disclosure Process
|
### Disclosure Process
|
||||||
|
|
||||||
MinIO uses the following disclosure process:
|
MinIO Console uses the following disclosure process:
|
||||||
|
|
||||||
1. Once the security report is received one member of the security team tries to verify and reproduce
|
1. Once the security report is received one member of the security team tries to verify and reproduce
|
||||||
the issue and determines the impact it has.
|
the issue and determines the impact it has.
|
||||||
@@ -33,8 +33,8 @@ MinIO uses the following disclosure process:
|
|||||||
3. Code is audited to find any potential similar problems.
|
3. Code is audited to find any potential similar problems.
|
||||||
4. Fixes are prepared for the latest release.
|
4. Fixes are prepared for the latest release.
|
||||||
5. On the date that the fixes are applied a security advisory will be published on https://blog.min.io.
|
5. On the date that the fixes are applied a security advisory will be published on https://blog.min.io.
|
||||||
Please inform us in your report email whether MinIO should mention your contribution w.r.t. fixing
|
Please inform us in your report email whether MinIO Console should mention your contribution w.r.t. fixing
|
||||||
the security issue. By default MinIO will **not** publish this information to protect your privacy.
|
the security issue. By default MinIO Console will **not** publish this information to protect your privacy.
|
||||||
|
|
||||||
This process can take some time, especially when coordination is required with maintainers of other projects.
|
This process can take some time, especially when coordination is required with maintainers of other projects.
|
||||||
Every effort will be made to handle the bug in as timely a manner as possible, however it's important that we
|
Every effort will be made to handle the bug in as timely a manner as possible, however it's important that we
|
||||||
|
|||||||
38
VULNERABILITY_REPORT.md
Normal file
38
VULNERABILITY_REPORT.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
## Vulnerability Management Policy
|
||||||
|
|
||||||
|
This document formally describes the process of addressing and managing a
|
||||||
|
reported vulnerability that has been found in the MinIO Console server code base,
|
||||||
|
any directly connected ecosystem component or a direct / indirect dependency
|
||||||
|
of the code base.
|
||||||
|
|
||||||
|
### Scope
|
||||||
|
|
||||||
|
The vulnerability management policy described in this document covers the
|
||||||
|
process of investigating, assessing and resolving a vulnerability report
|
||||||
|
opened by a MinIO Console employee or an external third party.
|
||||||
|
|
||||||
|
Therefore, it lists pre-conditions and actions that should be performed to
|
||||||
|
resolve and fix a reported vulnerability.
|
||||||
|
|
||||||
|
### Vulnerability Management Process
|
||||||
|
|
||||||
|
The vulnerability management process requires that the vulnerability report
|
||||||
|
contains the following information:
|
||||||
|
|
||||||
|
- The project / component that contains the reported vulnerability.
|
||||||
|
- A description of the vulnerability. In particular, the type of the
|
||||||
|
reported vulnerability and how it might be exploited. Alternatively,
|
||||||
|
a well-established vulnerability identifier, e.g. CVE number, can be
|
||||||
|
used instead.
|
||||||
|
|
||||||
|
Based on the description mentioned above, a MinIO Console engineer or security team
|
||||||
|
member investigates:
|
||||||
|
|
||||||
|
- Whether the reported vulnerability exists.
|
||||||
|
- The conditions that are required such that the vulnerability can be exploited.
|
||||||
|
- The steps required to fix the vulnerability.
|
||||||
|
|
||||||
|
In general, if the vulnerability exists in one of the MinIO Console code bases
|
||||||
|
itself - not in a code dependency - then MinIO Console will, if possible, fix
|
||||||
|
the vulnerability or implement reasonable countermeasures such that the
|
||||||
|
vulnerability cannot be exploited anymore.
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Kubernetes Cloud
|
// This file is part of MinIO Kubernetes Cloud
|
||||||
// Copyright (c) 2019 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
package cluster
|
package cluster
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
direct "github.com/minio/direct-csi/pkg/clientset"
|
||||||
operator "github.com/minio/operator/pkg/client/clientset/versioned"
|
operator "github.com/minio/operator/pkg/client/clientset/versioned"
|
||||||
"k8s.io/client-go/kubernetes"
|
"k8s.io/client-go/kubernetes"
|
||||||
"k8s.io/client-go/rest"
|
"k8s.io/client-go/rest"
|
||||||
@@ -63,3 +64,8 @@ func OperatorClient(token string) (*operator.Clientset, error) {
|
|||||||
func K8sClient(token string) (*kubernetes.Clientset, error) {
|
func K8sClient(token string) (*kubernetes.Clientset, error) {
|
||||||
return kubernetes.NewForConfig(GetK8sConfig(token))
|
return kubernetes.NewForConfig(GetK8sConfig(token))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DirectCSIClient returns Direct CSI client using GetK8sConfig for its config
|
||||||
|
func DirectCSIClient(token string) (*direct.Clientset, error) {
|
||||||
|
return direct.NewForConfig(GetK8sConfig(token))
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Kubernetes Cloud
|
// This file is part of MinIO Kubernetes Cloud
|
||||||
// Copyright (c) 2019 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -26,12 +26,11 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/minio/minio/pkg/env"
|
"github.com/minio/pkg/env"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
errCantDetermineMinIOImage = errors.New("can't determine MinIO Image")
|
errCantDetermineMinIOImage = errors.New("can't determine MinIO Image")
|
||||||
errCantDetermineMCImage = errors.New("can't determine MC Image")
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetK8sAPIServer() string {
|
func GetK8sAPIServer() string {
|
||||||
@@ -64,13 +63,8 @@ func GetNsFromFile() string {
|
|||||||
return string(dat)
|
return string(dat)
|
||||||
}
|
}
|
||||||
|
|
||||||
// This operation will run only once at console startup
|
// Namespace will run only once at console startup
|
||||||
var namespace = GetNsFromFile()
|
var Namespace = GetNsFromFile()
|
||||||
|
|
||||||
// Returns the namespace in which the controller is installed
|
|
||||||
func GetNs() string {
|
|
||||||
return env.Get(ConsoleNamespace, namespace)
|
|
||||||
}
|
|
||||||
|
|
||||||
// getLatestMinIOImage returns the latest docker image for MinIO if found on the internet
|
// getLatestMinIOImage returns the latest docker image for MinIO if found on the internet
|
||||||
func getLatestMinIOImage(client HTTPClientI) (*string, error) {
|
func getLatestMinIOImage(client HTTPClientI) (*string, error) {
|
||||||
@@ -98,7 +92,7 @@ func getLatestMinIOImage(client HTTPClientI) (*string, error) {
|
|||||||
var latestMinIOImage, errLatestMinIOImage = getLatestMinIOImage(
|
var latestMinIOImage, errLatestMinIOImage = getLatestMinIOImage(
|
||||||
&HTTPClient{
|
&HTTPClient{
|
||||||
Client: &http.Client{
|
Client: &http.Client{
|
||||||
Timeout: 4 * time.Second,
|
Timeout: 15 * time.Second,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -125,44 +119,3 @@ func GetLatestMinioImage(client HTTPClientI) (*string, error) {
|
|||||||
}
|
}
|
||||||
return latestMinIOImage, nil
|
return latestMinIOImage, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// getLatestMCImage returns the latest docker image for MC if found on the internet
|
|
||||||
func getLatestMCImage() (*string, error) {
|
|
||||||
// Create an http client with a 4 second timeout
|
|
||||||
client := http.Client{
|
|
||||||
Timeout: 4 * time.Second,
|
|
||||||
}
|
|
||||||
resp, err := client.Get("https://dl.min.io/client/mc/release/linux-amd64/")
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
defer resp.Body.Close()
|
|
||||||
|
|
||||||
body, err := ioutil.ReadAll(resp.Body)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
var re = regexp.MustCompile(`(?m)\.\/mc\.(RELEASE.*?Z)"`)
|
|
||||||
// look for a single match
|
|
||||||
matches := re.FindAllStringSubmatch(string(body), 1)
|
|
||||||
for i := range matches {
|
|
||||||
release := matches[i][1]
|
|
||||||
dockerImage := fmt.Sprintf("minio/mc:%s", release)
|
|
||||||
return &dockerImage, nil
|
|
||||||
}
|
|
||||||
return nil, errCantDetermineMCImage
|
|
||||||
}
|
|
||||||
|
|
||||||
var latestMCImage, errLatestMCImage = getLatestMCImage()
|
|
||||||
|
|
||||||
func GetMCImage() (*string, error) {
|
|
||||||
image := strings.TrimSpace(env.Get(ConsoleMCImage, ""))
|
|
||||||
// if there is a preferred image configured by the user we'll always return that
|
|
||||||
if image != "" {
|
|
||||||
return &image, nil
|
|
||||||
}
|
|
||||||
if errLatestMCImage != nil {
|
|
||||||
return nil, errLatestMCImage
|
|
||||||
}
|
|
||||||
return latestMCImage, nil
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Kubernetes Cloud
|
// This file is part of MinIO Kubernetes Cloud
|
||||||
// Copyright (c) 2019 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -21,5 +21,4 @@ const (
|
|||||||
ConsoleK8SAPIServerTLSRootCA = "CONSOLE_K8S_API_SERVER_TLS_ROOT_CA"
|
ConsoleK8SAPIServerTLSRootCA = "CONSOLE_K8S_API_SERVER_TLS_ROOT_CA"
|
||||||
ConsoleMinioImage = "CONSOLE_MINIO_IMAGE"
|
ConsoleMinioImage = "CONSOLE_MINIO_IMAGE"
|
||||||
ConsoleMCImage = "CONSOLE_MC_IMAGE"
|
ConsoleMCImage = "CONSOLE_MC_IMAGE"
|
||||||
ConsoleNamespace = "CONSOLE_NAMESPACE"
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Kubernetes Cloud
|
// This file is part of MinIO Kubernetes Cloud
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -17,6 +17,7 @@
|
|||||||
package cluster
|
package cluster
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -25,6 +26,8 @@ import (
|
|||||||
// that are used within this project.
|
// that are used within this project.
|
||||||
type HTTPClientI interface {
|
type HTTPClientI interface {
|
||||||
Get(url string) (resp *http.Response, err error)
|
Get(url string) (resp *http.Response, err error)
|
||||||
|
Post(url, contentType string, body io.Reader) (resp *http.Response, err error)
|
||||||
|
Do(req *http.Request) (*http.Response, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// HTTPClient Interface implementation
|
// HTTPClient Interface implementation
|
||||||
@@ -38,3 +41,13 @@ type HTTPClient struct {
|
|||||||
func (c *HTTPClient) Get(url string) (resp *http.Response, err error) {
|
func (c *HTTPClient) Get(url string) (resp *http.Response, err error) {
|
||||||
return c.Client.Get(url)
|
return c.Client.Get(url)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Post implements http.Client.Post()
|
||||||
|
func (c *HTTPClient) Post(url, contentType string, body io.Reader) (resp *http.Response, err error) {
|
||||||
|
return c.Client.Post(url, contentType, body)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do implements http.Client.Do()
|
||||||
|
func (c *HTTPClient) Do(req *http.Request) (*http.Response, error) {
|
||||||
|
return c.Client.Do(req)
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,13 +23,11 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/minio/console/pkg"
|
|
||||||
|
|
||||||
"github.com/minio/minio/pkg/console"
|
|
||||||
"github.com/minio/minio/pkg/trie"
|
|
||||||
"github.com/minio/minio/pkg/words"
|
|
||||||
|
|
||||||
"github.com/minio/cli"
|
"github.com/minio/cli"
|
||||||
|
"github.com/minio/console/pkg"
|
||||||
|
"github.com/minio/pkg/console"
|
||||||
|
"github.com/minio/pkg/trie"
|
||||||
|
"github.com/minio/pkg/words"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Help template for Console.
|
// Help template for Console.
|
||||||
@@ -54,6 +52,8 @@ VERSION:
|
|||||||
|
|
||||||
var appCmds = []cli.Command{
|
var appCmds = []cli.Command{
|
||||||
serverCmd,
|
serverCmd,
|
||||||
|
updateCmd,
|
||||||
|
operatorCmd,
|
||||||
}
|
}
|
||||||
|
|
||||||
func newApp(name string) *cli.App {
|
func newApp(name string) *cli.App {
|
||||||
@@ -76,21 +76,19 @@ func newApp(name string) *cli.App {
|
|||||||
|
|
||||||
findClosestCommands := func(command string) []string {
|
findClosestCommands := func(command string) []string {
|
||||||
var closestCommands []string
|
var closestCommands []string
|
||||||
for _, value := range commandsTree.PrefixMatch(command) {
|
closestCommands = append(closestCommands, commandsTree.PrefixMatch(command)...)
|
||||||
closestCommands = append(closestCommands, value.(string))
|
|
||||||
}
|
|
||||||
|
|
||||||
sort.Strings(closestCommands)
|
sort.Strings(closestCommands)
|
||||||
// Suggest other close commands - allow missed, wrongly added and
|
// Suggest other close commands - allow missed, wrongly added and
|
||||||
// even transposed characters
|
// even transposed characters
|
||||||
for _, value := range commandsTree.Walk(commandsTree.Root()) {
|
for _, value := range commandsTree.Walk(commandsTree.Root()) {
|
||||||
if sort.SearchStrings(closestCommands, value.(string)) < len(closestCommands) {
|
if sort.SearchStrings(closestCommands, value) < len(closestCommands) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
// 2 is arbitrary and represents the max
|
// 2 is arbitrary and represents the max
|
||||||
// allowed number of typed errors
|
// allowed number of typed errors
|
||||||
if words.DamerauLevenshteinDistance(command, value.(string)) < 2 {
|
if words.DamerauLevenshteinDistance(command, value) < 2 {
|
||||||
closestCommands = append(closestCommands, value.(string))
|
closestCommands = append(closestCommands, value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +106,7 @@ func newApp(name string) *cli.App {
|
|||||||
app.Author = "MinIO, Inc."
|
app.Author = "MinIO, Inc."
|
||||||
app.Usage = "MinIO Console Server"
|
app.Usage = "MinIO Console Server"
|
||||||
app.Description = `MinIO Console Server`
|
app.Description = `MinIO Console Server`
|
||||||
app.Copyright = "(c) 2020 MinIO, Inc."
|
app.Copyright = "(c) 2021 MinIO, Inc."
|
||||||
app.Compiled, _ = time.Parse(time.RFC3339, pkg.ReleaseTime)
|
app.Compiled, _ = time.Parse(time.RFC3339, pkg.ReleaseTime)
|
||||||
app.Commands = commands
|
app.Commands = commands
|
||||||
app.HideHelpCommand = true // Hide `help, h` command, we already have `minio --help`.
|
app.HideHelpCommand = true // Hide `help, h` command, we already have `minio --help`.
|
||||||
|
|||||||
246
cmd/console/operator.go
Normal file
246
cmd/console/operator.go
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"path/filepath"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/minio/console/restapi"
|
||||||
|
|
||||||
|
"github.com/go-openapi/loads"
|
||||||
|
"github.com/jessevdk/go-flags"
|
||||||
|
"github.com/minio/cli"
|
||||||
|
"github.com/minio/console/operatorapi"
|
||||||
|
"github.com/minio/console/operatorapi/operations"
|
||||||
|
"github.com/minio/console/pkg/certs"
|
||||||
|
)
|
||||||
|
|
||||||
|
// starts the server
|
||||||
|
var operatorCmd = cli.Command{
|
||||||
|
Name: "operator",
|
||||||
|
Aliases: []string{"opr"},
|
||||||
|
Usage: "Start MinIO Operator UI server",
|
||||||
|
Action: startOperatorServer,
|
||||||
|
Flags: []cli.Flag{
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "host",
|
||||||
|
Value: restapi.GetHostname(),
|
||||||
|
Usage: "bind to a specific HOST, HOST can be an IP or hostname",
|
||||||
|
},
|
||||||
|
cli.IntFlag{
|
||||||
|
Name: "port",
|
||||||
|
Value: restapi.GetPort(),
|
||||||
|
Usage: "bind to specific HTTP port",
|
||||||
|
},
|
||||||
|
// This is kept here for backward compatibility,
|
||||||
|
// hostname's do not have HTTP or HTTPs
|
||||||
|
// hostnames are opaque so using --host
|
||||||
|
// works for both HTTP and HTTPS setup.
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-host",
|
||||||
|
Value: restapi.GetHostname(),
|
||||||
|
Hidden: true,
|
||||||
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "certs-dir",
|
||||||
|
Value: certs.GlobalCertsCADir.Get(),
|
||||||
|
Usage: "path to certs directory",
|
||||||
|
},
|
||||||
|
cli.IntFlag{
|
||||||
|
Name: "tls-port",
|
||||||
|
Value: restapi.GetTLSPort(),
|
||||||
|
Usage: "bind to specific HTTPS port",
|
||||||
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-redirect",
|
||||||
|
Value: restapi.GetTLSRedirect(),
|
||||||
|
Usage: "toggle HTTP->HTTPS redirect",
|
||||||
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-certificate",
|
||||||
|
Value: "",
|
||||||
|
Usage: "path to TLS public certificate",
|
||||||
|
Hidden: true,
|
||||||
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-key",
|
||||||
|
Value: "",
|
||||||
|
Usage: "path to TLS private key",
|
||||||
|
Hidden: true,
|
||||||
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-ca",
|
||||||
|
Value: "",
|
||||||
|
Usage: "path to TLS Certificate Authority",
|
||||||
|
Hidden: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func buildOperatorServer() (*operatorapi.Server, error) {
|
||||||
|
swaggerSpec, err := loads.Embedded(operatorapi.SwaggerJSON, operatorapi.FlatSwaggerJSON)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
api := operations.NewOperatorAPI(swaggerSpec)
|
||||||
|
api.Logger = operatorapi.LogInfo
|
||||||
|
server := operatorapi.NewServer(api)
|
||||||
|
|
||||||
|
parser := flags.NewParser(server, flags.Default)
|
||||||
|
parser.ShortDescription = "MinIO Console Server"
|
||||||
|
parser.LongDescription = swaggerSpec.Spec().Info.Description
|
||||||
|
|
||||||
|
server.ConfigureFlags()
|
||||||
|
|
||||||
|
// register all APIs
|
||||||
|
server.ConfigureAPI()
|
||||||
|
|
||||||
|
for _, optsGroup := range api.CommandLineOptionsGroups {
|
||||||
|
_, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := parser.Parse(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return server, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadOperatorAllCerts(ctx *cli.Context) error {
|
||||||
|
var err error
|
||||||
|
// Set all certs and CAs directories path
|
||||||
|
certs.GlobalCertsDir, _, err = certs.NewConfigDirFromCtx(ctx, "certs-dir", certs.DefaultCertsDir.Get)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
certs.GlobalCertsCADir = &certs.ConfigDir{Path: filepath.Join(certs.GlobalCertsDir.Get(), certs.CertsCADir)}
|
||||||
|
// check if certs and CAs directories exists or can be created
|
||||||
|
if err = certs.MkdirAllIgnorePerm(certs.GlobalCertsCADir.Get()); err != nil {
|
||||||
|
return fmt.Errorf("unable to create certs CA directory at %s: failed with %w", certs.GlobalCertsCADir.Get(), err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// load the certificates and the CAs
|
||||||
|
operatorapi.GlobalRootCAs, operatorapi.GlobalPublicCerts, operatorapi.GlobalTLSCertsManager, err = certs.GetAllCertificatesAndCAs()
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("unable to load certificates at %s: failed with %w", certs.GlobalCertsDir.Get(), err)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
// TLS flags from swagger server, used to support VMware vsphere operator version.
|
||||||
|
swaggerServerCertificate := ctx.String("tls-certificate")
|
||||||
|
swaggerServerCertificateKey := ctx.String("tls-key")
|
||||||
|
swaggerServerCACertificate := ctx.String("tls-ca")
|
||||||
|
// load tls cert and key from swagger server tls-certificate and tls-key flags
|
||||||
|
if swaggerServerCertificate != "" && swaggerServerCertificateKey != "" {
|
||||||
|
if err = operatorapi.GlobalTLSCertsManager.AddCertificate(swaggerServerCertificate, swaggerServerCertificateKey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
x509Certs, err := certs.ParsePublicCertFile(swaggerServerCertificate)
|
||||||
|
if err == nil {
|
||||||
|
operatorapi.GlobalPublicCerts = append(operatorapi.GlobalPublicCerts, x509Certs...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// load ca cert from swagger server tls-ca flag
|
||||||
|
if swaggerServerCACertificate != "" {
|
||||||
|
caCert, caCertErr := ioutil.ReadFile(swaggerServerCACertificate)
|
||||||
|
if caCertErr == nil {
|
||||||
|
operatorapi.GlobalRootCAs.AppendCertsFromPEM(caCert)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// StartServer starts the console service
|
||||||
|
func startOperatorServer(ctx *cli.Context) error {
|
||||||
|
if err := loadOperatorAllCerts(ctx); err != nil {
|
||||||
|
// Log this as a warning and continue running console without TLS certificates
|
||||||
|
operatorapi.LogError("Unable to load certs: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var rctx operatorapi.Context
|
||||||
|
if err := rctx.Load(ctx); err != nil {
|
||||||
|
operatorapi.LogError("argument validation failed: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
server, err := buildOperatorServer()
|
||||||
|
if err != nil {
|
||||||
|
operatorapi.LogError("Unable to initialize console server: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
server.Host = rctx.Host
|
||||||
|
server.Port = rctx.HTTPPort
|
||||||
|
// set conservative timesout for uploads
|
||||||
|
server.ReadTimeout = 1 * time.Hour
|
||||||
|
// no timeouts for response for downloads
|
||||||
|
server.WriteTimeout = 0
|
||||||
|
operatorapi.Port = strconv.Itoa(server.Port)
|
||||||
|
operatorapi.Hostname = server.Host
|
||||||
|
|
||||||
|
if len(operatorapi.GlobalPublicCerts) > 0 {
|
||||||
|
// If TLS certificates are provided enforce the HTTPS schema, meaning console will redirect
|
||||||
|
// plain HTTP connections to HTTPS server
|
||||||
|
server.EnabledListeners = []string{"http", "https"}
|
||||||
|
server.TLSPort = rctx.HTTPSPort
|
||||||
|
// Need to store tls-port, tls-host un config variables so secure.middleware can read from there
|
||||||
|
operatorapi.TLSPort = strconv.Itoa(server.TLSPort)
|
||||||
|
operatorapi.Hostname = rctx.Host
|
||||||
|
operatorapi.TLSRedirect = rctx.TLSRedirect
|
||||||
|
}
|
||||||
|
|
||||||
|
defer server.Shutdown()
|
||||||
|
|
||||||
|
// subnet license refresh process
|
||||||
|
go func() {
|
||||||
|
// start refreshing subnet license after 5 seconds..
|
||||||
|
time.Sleep(time.Second * 5)
|
||||||
|
|
||||||
|
failedAttempts := 0
|
||||||
|
for {
|
||||||
|
if err := operatorapi.RefreshLicense(); err != nil {
|
||||||
|
operatorapi.LogError("Refreshing subnet license failed: %v", err)
|
||||||
|
failedAttempts++
|
||||||
|
// end license refresh after 3 consecutive failed attempts
|
||||||
|
if failedAttempts >= 3 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// wait 5 minutes and retry again
|
||||||
|
time.Sleep(time.Minute * 5)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// if license refreshed successfully reset the counter
|
||||||
|
failedAttempts = 0
|
||||||
|
// try to refresh license every 24 hrs
|
||||||
|
time.Sleep(time.Hour * 24)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
return server.Serve()
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -18,12 +18,16 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"io/ioutil"
|
||||||
"os"
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"strconv"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/go-openapi/loads"
|
"github.com/go-openapi/loads"
|
||||||
"github.com/jessevdk/go-flags"
|
"github.com/jessevdk/go-flags"
|
||||||
"github.com/minio/cli"
|
"github.com/minio/cli"
|
||||||
|
"github.com/minio/console/pkg/certs"
|
||||||
"github.com/minio/console/restapi"
|
"github.com/minio/console/restapi"
|
||||||
"github.com/minio/console/restapi/operations"
|
"github.com/minio/console/restapi/operations"
|
||||||
)
|
)
|
||||||
@@ -32,101 +36,189 @@ import (
|
|||||||
var serverCmd = cli.Command{
|
var serverCmd = cli.Command{
|
||||||
Name: "server",
|
Name: "server",
|
||||||
Aliases: []string{"srv"},
|
Aliases: []string{"srv"},
|
||||||
Usage: "starts Console server",
|
Usage: "Start MinIO Console server",
|
||||||
Action: startServer,
|
Action: StartServer,
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "host",
|
Name: "host",
|
||||||
Value: restapi.GetHostname(),
|
Value: restapi.GetHostname(),
|
||||||
Usage: "HTTP server hostname",
|
Usage: "bind to a specific HOST, HOST can be an IP or hostname",
|
||||||
},
|
},
|
||||||
cli.IntFlag{
|
cli.IntFlag{
|
||||||
Name: "port",
|
Name: "port",
|
||||||
Value: restapi.GetPort(),
|
Value: restapi.GetPort(),
|
||||||
Usage: "HTTP Server port",
|
Usage: "bind to specific HTTP port",
|
||||||
|
},
|
||||||
|
// This is kept here for backward compatibility,
|
||||||
|
// hostname's do not have HTTP or HTTPs
|
||||||
|
// hostnames are opaque so using --host
|
||||||
|
// works for both HTTP and HTTPS setup.
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-host",
|
||||||
|
Value: restapi.GetHostname(),
|
||||||
|
Hidden: true,
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "tls-host",
|
Name: "certs-dir",
|
||||||
Value: restapi.GetSSLHostname(),
|
Value: certs.GlobalCertsCADir.Get(),
|
||||||
Usage: "HTTPS server hostname",
|
Usage: "path to certs directory",
|
||||||
},
|
},
|
||||||
cli.IntFlag{
|
cli.IntFlag{
|
||||||
Name: "tls-port",
|
Name: "tls-port",
|
||||||
Value: restapi.GetSSLPort(),
|
Value: restapi.GetTLSPort(),
|
||||||
Usage: "HTTPS server port",
|
Usage: "bind to specific HTTPS port",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "tls-certificate",
|
Name: "tls-redirect",
|
||||||
Value: "",
|
Value: restapi.GetTLSRedirect(),
|
||||||
Usage: "filename of public cert",
|
Usage: "toggle HTTP->HTTPS redirect",
|
||||||
},
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "tls-key",
|
Name: "tls-certificate",
|
||||||
Value: "",
|
Value: "",
|
||||||
Usage: "filename of private key",
|
Usage: "path to TLS public certificate",
|
||||||
|
Hidden: true,
|
||||||
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-key",
|
||||||
|
Value: "",
|
||||||
|
Usage: "path to TLS private key",
|
||||||
|
Hidden: true,
|
||||||
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "tls-ca",
|
||||||
|
Value: "",
|
||||||
|
Usage: "path to TLS Certificate Authority",
|
||||||
|
Hidden: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// starts the controller
|
func buildServer() (*restapi.Server, error) {
|
||||||
func startServer(ctx *cli.Context) error {
|
|
||||||
swaggerSpec, err := loads.Embedded(restapi.SwaggerJSON, restapi.FlatSwaggerJSON)
|
swaggerSpec, err := loads.Embedded(restapi.SwaggerJSON, restapi.FlatSwaggerJSON)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln(err)
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
api := operations.NewConsoleAPI(swaggerSpec)
|
api := operations.NewConsoleAPI(swaggerSpec)
|
||||||
|
api.Logger = restapi.LogInfo
|
||||||
server := restapi.NewServer(api)
|
server := restapi.NewServer(api)
|
||||||
defer server.Shutdown()
|
|
||||||
|
|
||||||
parser := flags.NewParser(server, flags.Default)
|
parser := flags.NewParser(server, flags.Default)
|
||||||
parser.ShortDescription = "MinIO Console Server"
|
parser.ShortDescription = "MinIO Console Server"
|
||||||
parser.LongDescription = swaggerSpec.Spec().Info.Description
|
parser.LongDescription = swaggerSpec.Spec().Info.Description
|
||||||
|
|
||||||
server.ConfigureFlags()
|
server.ConfigureFlags()
|
||||||
|
|
||||||
|
// register all APIs
|
||||||
|
server.ConfigureAPI()
|
||||||
|
|
||||||
for _, optsGroup := range api.CommandLineOptionsGroups {
|
for _, optsGroup := range api.CommandLineOptionsGroups {
|
||||||
_, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options)
|
_, err := parser.AddGroup(optsGroup.ShortDescription, optsGroup.LongDescription, optsGroup.Options)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalln(err)
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := parser.Parse(); err != nil {
|
if _, err := parser.Parse(); err != nil {
|
||||||
code := 1
|
return nil, err
|
||||||
if fe, ok := err.(*flags.Error); ok {
|
|
||||||
if fe.Type == flags.ErrHelp {
|
|
||||||
code = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
os.Exit(code)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
server.Host = ctx.String("host")
|
return server, nil
|
||||||
server.Port = ctx.Int("port")
|
}
|
||||||
|
|
||||||
restapi.Hostname = ctx.String("host")
|
func loadAllCerts(ctx *cli.Context) error {
|
||||||
restapi.Port = fmt.Sprintf("%v", ctx.Int("port"))
|
var err error
|
||||||
|
// Set all certs and CAs directories path
|
||||||
|
certs.GlobalCertsDir, _, err = certs.NewConfigDirFromCtx(ctx, "certs-dir", certs.DefaultCertsDir.Get)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
tlsCertificatePath := ctx.String("tls-certificate")
|
certs.GlobalCertsCADir = &certs.ConfigDir{Path: filepath.Join(certs.GlobalCertsDir.Get(), certs.CertsCADir)}
|
||||||
tlsCertificateKeyPath := ctx.String("tls-key")
|
// check if certs and CAs directories exists or can be created
|
||||||
|
if err = certs.MkdirAllIgnorePerm(certs.GlobalCertsCADir.Get()); err != nil {
|
||||||
|
return fmt.Errorf("unable to create certs CA directory at %s: failed with %w", certs.GlobalCertsCADir.Get(), err)
|
||||||
|
}
|
||||||
|
|
||||||
if tlsCertificatePath != "" && tlsCertificateKeyPath != "" {
|
// load the certificates and the CAs
|
||||||
server.TLSCertificate = flags.Filename(tlsCertificatePath)
|
restapi.GlobalRootCAs, restapi.GlobalPublicCerts, restapi.GlobalTLSCertsManager, err = certs.GetAllCertificatesAndCAs()
|
||||||
server.TLSCertificateKey = flags.Filename(tlsCertificateKeyPath)
|
if err != nil {
|
||||||
|
return fmt.Errorf("unable to load certificates at %s: failed with %w", certs.GlobalCertsDir.Get(), err)
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
// TLS flags from swagger server, used to support VMware vsphere operator version.
|
||||||
|
swaggerServerCertificate := ctx.String("tls-certificate")
|
||||||
|
swaggerServerCertificateKey := ctx.String("tls-key")
|
||||||
|
swaggerServerCACertificate := ctx.String("tls-ca")
|
||||||
|
// load tls cert and key from swagger server tls-certificate and tls-key flags
|
||||||
|
if swaggerServerCertificate != "" && swaggerServerCertificateKey != "" {
|
||||||
|
if err = restapi.GlobalTLSCertsManager.AddCertificate(swaggerServerCertificate, swaggerServerCertificateKey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
x509Certs, err := certs.ParsePublicCertFile(swaggerServerCertificate)
|
||||||
|
if err == nil {
|
||||||
|
restapi.GlobalPublicCerts = append(restapi.GlobalPublicCerts, x509Certs...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// load ca cert from swagger server tls-ca flag
|
||||||
|
if swaggerServerCACertificate != "" {
|
||||||
|
caCert, caCertErr := ioutil.ReadFile(swaggerServerCACertificate)
|
||||||
|
if caCertErr == nil {
|
||||||
|
restapi.GlobalRootCAs.AppendCertsFromPEM(caCert)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// StartServer starts the console service
|
||||||
|
func StartServer(ctx *cli.Context) error {
|
||||||
|
if os.Getenv("CONSOLE_OPERATOR_MODE") != "" && os.Getenv("CONSOLE_OPERATOR_MODE") == "on" {
|
||||||
|
return startOperatorServer(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := loadAllCerts(ctx); err != nil {
|
||||||
|
// Log this as a warning and continue running console without TLS certificates
|
||||||
|
restapi.LogError("Unable to load certs: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var rctx restapi.Context
|
||||||
|
if err := rctx.Load(ctx); err != nil {
|
||||||
|
restapi.LogError("argument validation failed: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
server, err := buildServer()
|
||||||
|
if err != nil {
|
||||||
|
restapi.LogError("Unable to initialize console server: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
server.Host = rctx.Host
|
||||||
|
server.Port = rctx.HTTPPort
|
||||||
|
// set conservative timesout for uploads
|
||||||
|
server.ReadTimeout = 1 * time.Hour
|
||||||
|
// no timeouts for response for downloads
|
||||||
|
server.WriteTimeout = 0
|
||||||
|
restapi.Port = strconv.Itoa(server.Port)
|
||||||
|
restapi.Hostname = server.Host
|
||||||
|
|
||||||
|
if len(restapi.GlobalPublicCerts) > 0 {
|
||||||
// If TLS certificates are provided enforce the HTTPS schema, meaning console will redirect
|
// If TLS certificates are provided enforce the HTTPS schema, meaning console will redirect
|
||||||
// plain HTTP connections to HTTPS server
|
// plain HTTP connections to HTTPS server
|
||||||
server.EnabledListeners = []string{"http", "https"}
|
server.EnabledListeners = []string{"http", "https"}
|
||||||
server.TLSPort = ctx.Int("tls-port")
|
server.TLSPort = rctx.HTTPSPort
|
||||||
server.TLSHost = ctx.String("tls-host")
|
|
||||||
// Need to store tls-port, tls-host un config variables so secure.middleware can read from there
|
// Need to store tls-port, tls-host un config variables so secure.middleware can read from there
|
||||||
restapi.TLSPort = fmt.Sprintf("%v", ctx.Int("tls-port"))
|
restapi.TLSPort = strconv.Itoa(server.TLSPort)
|
||||||
restapi.TLSHostname = ctx.String("tls-host")
|
restapi.Hostname = rctx.Host
|
||||||
restapi.TLSRedirect = "on"
|
restapi.TLSRedirect = rctx.TLSRedirect
|
||||||
}
|
}
|
||||||
|
|
||||||
server.ConfigureAPI()
|
defer server.Shutdown()
|
||||||
|
|
||||||
if err := server.Serve(); err != nil {
|
return server.Serve()
|
||||||
log.Fatalln(err)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|||||||
154
cmd/console/update.go
Normal file
154
cmd/console/update.go
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"net"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/blang/semver/v4"
|
||||||
|
"github.com/cheggaaa/pb/v3"
|
||||||
|
"github.com/minio/cli"
|
||||||
|
"github.com/minio/console/pkg"
|
||||||
|
"github.com/minio/selfupdate"
|
||||||
|
)
|
||||||
|
|
||||||
|
func getUpdateTransport(timeout time.Duration) http.RoundTripper {
|
||||||
|
var updateTransport http.RoundTripper = &http.Transport{
|
||||||
|
Proxy: http.ProxyFromEnvironment,
|
||||||
|
DialContext: (&net.Dialer{
|
||||||
|
Timeout: timeout,
|
||||||
|
KeepAlive: timeout,
|
||||||
|
DualStack: true,
|
||||||
|
}).DialContext,
|
||||||
|
IdleConnTimeout: timeout,
|
||||||
|
TLSHandshakeTimeout: timeout,
|
||||||
|
ExpectContinueTimeout: timeout,
|
||||||
|
DisableCompression: true,
|
||||||
|
}
|
||||||
|
return updateTransport
|
||||||
|
}
|
||||||
|
|
||||||
|
func getUpdateReaderFromURL(u string, transport http.RoundTripper) (io.ReadCloser, int64, error) {
|
||||||
|
clnt := &http.Client{
|
||||||
|
Transport: transport,
|
||||||
|
}
|
||||||
|
req, err := http.NewRequest(http.MethodGet, u, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, -1, err
|
||||||
|
}
|
||||||
|
|
||||||
|
resp, err := clnt.Do(req)
|
||||||
|
if err != nil {
|
||||||
|
return nil, -1, err
|
||||||
|
}
|
||||||
|
return resp.Body, resp.ContentLength, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
const defaultPubKey = "RWTx5Zr1tiHQLwG9keckT0c45M3AGeHD6IvimQHpyRywVWGbP1aVSGav"
|
||||||
|
|
||||||
|
func getLatestRelease(tr http.RoundTripper) (string, error) {
|
||||||
|
releaseURL := "https://api.github.com/repos/minio/console/releases/latest"
|
||||||
|
|
||||||
|
body, _, err := getUpdateReaderFromURL(releaseURL, tr)
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("unable to access github release URL %w", err)
|
||||||
|
}
|
||||||
|
defer body.Close()
|
||||||
|
|
||||||
|
lm := make(map[string]interface{})
|
||||||
|
if err = json.NewDecoder(body).Decode(&lm); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
rel, ok := lm["tag_name"].(string)
|
||||||
|
if !ok {
|
||||||
|
return "", errors.New("unable to find latest release tag")
|
||||||
|
}
|
||||||
|
return rel, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// update console in-place
|
||||||
|
var updateCmd = cli.Command{
|
||||||
|
Name: "update",
|
||||||
|
Usage: "update console to latest release",
|
||||||
|
Action: updateInplace,
|
||||||
|
}
|
||||||
|
|
||||||
|
func updateInplace(ctx *cli.Context) error {
|
||||||
|
transport := getUpdateTransport(30 * time.Second)
|
||||||
|
rel, err := getLatestRelease(transport)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
latest, err := semver.Make(strings.TrimPrefix(rel, "v"))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
current, err := semver.Make(pkg.Version)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if current.GTE(latest) {
|
||||||
|
fmt.Printf("You are already running the latest version v%v.\n", pkg.Version)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
consoleBin := fmt.Sprintf("https://github.com/minio/console/releases/download/%s/console-%s-%s", rel, runtime.GOOS, runtime.GOARCH)
|
||||||
|
reader, length, err := getUpdateReaderFromURL(consoleBin, transport)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("unable to fetch binary from %s: %w", consoleBin, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
minisignPubkey := os.Getenv("CONSOLE_MINISIGN_PUBKEY")
|
||||||
|
if minisignPubkey == "" {
|
||||||
|
minisignPubkey = defaultPubKey
|
||||||
|
}
|
||||||
|
|
||||||
|
v := selfupdate.NewVerifier()
|
||||||
|
if err = v.LoadFromURL(consoleBin+".minisig", minisignPubkey, transport); err != nil {
|
||||||
|
return fmt.Errorf("unable to fetch binary signature for %s: %w", consoleBin, err)
|
||||||
|
}
|
||||||
|
opts := selfupdate.Options{
|
||||||
|
Verifier: v,
|
||||||
|
}
|
||||||
|
|
||||||
|
tmpl := `{{ red "Downloading:" }} {{bar . (red "[") (green "=") (red "]")}} {{speed . | rndcolor }}`
|
||||||
|
bar := pb.ProgressBarTemplate(tmpl).Start64(length)
|
||||||
|
barReader := bar.NewProxyReader(reader)
|
||||||
|
if err = selfupdate.Apply(barReader, opts); err != nil {
|
||||||
|
bar.Finish()
|
||||||
|
if rerr := selfupdate.RollbackError(err); rerr != nil {
|
||||||
|
return rerr
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
bar.Finish()
|
||||||
|
fmt.Printf("Updated 'console' to latest release %s\n", rel)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
33
cross-compile.sh
Executable file
33
cross-compile.sh
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
# Enable tracing if set.
|
||||||
|
[ -n "$BASH_XTRACEFD" ] && set -x
|
||||||
|
|
||||||
|
## All binaries are static make sure to disable CGO.
|
||||||
|
export CGO_ENABLED=0
|
||||||
|
|
||||||
|
## List of architectures and OS to test cross compilation.
|
||||||
|
SUPPORTED_OSARCH_DEFAULTS="linux/ppc64le linux/mips64 linux/arm64 linux/s390x darwin/amd64 freebsd/amd64 windows/amd64 linux/arm linux/386 netbsd/amd64"
|
||||||
|
SUPPORTED_OSARCH=${1:-$SUPPORTED_OSARCH_DEFAULTS}
|
||||||
|
|
||||||
|
_build() {
|
||||||
|
local osarch=$1
|
||||||
|
IFS=/ read -r -a arr <<<"$osarch"
|
||||||
|
os="${arr[0]}"
|
||||||
|
arch="${arr[1]}"
|
||||||
|
package=$(go list -f '{{.ImportPath}}' ./cmd/console)
|
||||||
|
printf -- "--> %15s:%s\n" "${osarch}" "${package}"
|
||||||
|
|
||||||
|
# go build -trimpath to build the binary.
|
||||||
|
GOOS=$os GOARCH=$arch GO111MODULE=on go build -trimpath --tags=kqueue --ldflags "-s -w" -o /dev/null ./cmd/console
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
echo "Testing builds for OS/Arch: ${SUPPORTED_OSARCH}"
|
||||||
|
for each_osarch in ${SUPPORTED_OSARCH}; do
|
||||||
|
_build "${each_osarch}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
`Console` will authenticate against `Kubernetes`using bearer tokens via HTTP `Authorization` header. The user will provide this token once
|
`Console` will authenticate against `Kubernetes`using bearer tokens via HTTP `Authorization` header. The user will provide this token once
|
||||||
in the login form, Console will validate it against Kubernetes (list apis) and if valid will generate and return a new Console sessions
|
in the login form, Console will validate it against Kubernetes (list apis) and if valid will generate and return a new Console sessions
|
||||||
with encrypted claims (the user Service account token will be inside the JWT in the data field)
|
with encrypted claims (the user Service account token will be inside the session encrypted token
|
||||||
|
|
||||||
# Kubernetes
|
# Kubernetes
|
||||||
|
|
||||||
|
|||||||
35
docs/ldap/billy.ldif
Normal file
35
docs/ldap/billy.ldif
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# LDIF fragment to create group branch under root
|
||||||
|
dn: uid=billy,dc=example,dc=org
|
||||||
|
uid: billy
|
||||||
|
cn: billy
|
||||||
|
sn: 3
|
||||||
|
objectClass: top
|
||||||
|
objectClass: posixAccount
|
||||||
|
objectClass: inetOrgPerson
|
||||||
|
loginShell: /bin/bash
|
||||||
|
homeDirectory: /home/billy
|
||||||
|
uidNumber: 14583102
|
||||||
|
gidNumber: 14564100
|
||||||
|
userPassword: {SSHA}j3lBh1Seqe4rqF1+NuWmjhvtAni1JC5A
|
||||||
|
mail: billy@example.org
|
||||||
|
gecos: Billy User
|
||||||
|
|
||||||
|
# Create base group
|
||||||
|
dn: ou=groups,dc=example,dc=org
|
||||||
|
objectclass:organizationalunit
|
||||||
|
ou: groups
|
||||||
|
description: generic groups branch
|
||||||
|
|
||||||
|
# create consoleAdmin group (this already exists on minio and have a policy of s3::*)
|
||||||
|
dn: cn=consoleAdmin,ou=groups,dc=example,dc=org
|
||||||
|
objectClass: top
|
||||||
|
objectClass: posixGroup
|
||||||
|
gidNumber: 678
|
||||||
|
|
||||||
|
# Assing group to new user
|
||||||
|
dn: cn=consoleAdmin,ou=groups,dc=example,dc=org
|
||||||
|
changetype: modify
|
||||||
|
add: memberuid
|
||||||
|
memberuid: billy
|
||||||
|
|
||||||
|
|
||||||
58
go.mod
58
go.mod
@@ -1,34 +1,44 @@
|
|||||||
module github.com/minio/console
|
module github.com/minio/console
|
||||||
|
|
||||||
go 1.13
|
go 1.16
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/blang/semver/v4 v4.0.0
|
||||||
|
github.com/cheggaaa/pb/v3 v3.0.6
|
||||||
github.com/coreos/go-oidc v2.2.1+incompatible
|
github.com/coreos/go-oidc v2.2.1+incompatible
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible
|
github.com/dustin/go-humanize v1.0.0
|
||||||
github.com/elazarl/go-bindata-assetfs v1.0.0
|
github.com/go-openapi/errors v0.19.9
|
||||||
github.com/go-openapi/errors v0.19.6
|
github.com/go-openapi/loads v0.20.2
|
||||||
github.com/go-openapi/loads v0.19.5
|
github.com/go-openapi/runtime v0.19.24
|
||||||
github.com/go-openapi/runtime v0.19.19
|
github.com/go-openapi/spec v0.20.3
|
||||||
github.com/go-openapi/spec v0.19.8
|
github.com/go-openapi/strfmt v0.20.0
|
||||||
github.com/go-openapi/strfmt v0.19.5
|
github.com/go-openapi/swag v0.19.14
|
||||||
github.com/go-openapi/swag v0.19.9
|
github.com/go-openapi/validate v0.20.2
|
||||||
github.com/go-openapi/validate v0.19.10
|
|
||||||
github.com/gorilla/websocket v1.4.2
|
github.com/gorilla/websocket v1.4.2
|
||||||
github.com/jessevdk/go-flags v1.4.0
|
github.com/jessevdk/go-flags v1.4.0
|
||||||
github.com/json-iterator/go v1.1.10
|
|
||||||
github.com/minio/cli v1.22.0
|
github.com/minio/cli v1.22.0
|
||||||
github.com/minio/mc v0.0.0-20200725183142-90d22b271f60
|
github.com/minio/direct-csi v1.3.5-0.20210601185811-f7776f7961bf
|
||||||
github.com/minio/minio v0.0.0-20200725154241-abbf6ce6ccf8
|
github.com/minio/kes v0.11.0
|
||||||
github.com/minio/minio-go/v7 v7.0.2-0.20200722162308-e0105ca08252
|
github.com/minio/madmin-go v1.1.5
|
||||||
github.com/minio/operator v0.0.0-20200725185636-4a625e4fbb31
|
github.com/minio/mc v0.0.0-20210626002108-cebf3318546f
|
||||||
|
github.com/minio/minio-go/v7 v7.0.14
|
||||||
|
github.com/minio/operator v0.0.0-20210812082324-26350f153661
|
||||||
|
github.com/minio/operator/logsearchapi v0.0.0-20210812082324-26350f153661
|
||||||
|
github.com/minio/pkg v1.1.3
|
||||||
|
github.com/minio/selfupdate v0.3.1
|
||||||
|
github.com/mitchellh/go-homedir v1.1.0
|
||||||
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect
|
github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect
|
||||||
github.com/satori/go.uuid v1.2.0
|
github.com/rs/xid v1.2.1
|
||||||
github.com/stretchr/testify v1.6.1
|
github.com/secure-io/sio-go v0.3.1
|
||||||
github.com/unrolled/secure v1.0.7
|
github.com/stretchr/testify v1.7.0
|
||||||
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899
|
github.com/unrolled/secure v1.0.9
|
||||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381
|
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
golang.org/x/net v0.0.0-20210421230115-4e50805a0758
|
||||||
k8s.io/api v0.18.0
|
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
|
||||||
k8s.io/apimachinery v0.18.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
k8s.io/client-go v0.18.0
|
k8s.io/api v0.21.1
|
||||||
|
k8s.io/apimachinery v0.21.1
|
||||||
|
k8s.io/client-go v0.21.1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
replace google.golang.org/grpc => google.golang.org/grpc v1.29.1
|
||||||
|
|||||||
BIN
images/pic1.png
BIN
images/pic1.png
Binary file not shown.
|
Before Width: | Height: | Size: 635 KiB After Width: | Height: | Size: 1.8 MiB |
BIN
images/pic2.png
BIN
images/pic2.png
Binary file not shown.
|
Before Width: | Height: | Size: 688 KiB After Width: | Height: | Size: 1.5 MiB |
340
integration/buckets_test.go
Normal file
340
integration/buckets_test.go
Normal file
@@ -0,0 +1,340 @@
|
|||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
package integration
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/go-openapi/loads"
|
||||||
|
"github.com/minio/console/restapi"
|
||||||
|
"github.com/minio/console/restapi/operations"
|
||||||
|
|
||||||
|
"github.com/minio/console/models"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
var token string
|
||||||
|
|
||||||
|
func initConsoleServer() (*restapi.Server, error) {
|
||||||
|
|
||||||
|
//os.Setenv("CONSOLE_MINIO_SERVER", "localhost:9000")
|
||||||
|
|
||||||
|
swaggerSpec, err := loads.Embedded(restapi.SwaggerJSON, restapi.FlatSwaggerJSON)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
noLog := func(string, ...interface{}) {
|
||||||
|
// nothing to log
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize MinIO loggers
|
||||||
|
restapi.LogInfo = noLog
|
||||||
|
restapi.LogError = noLog
|
||||||
|
|
||||||
|
api := operations.NewConsoleAPI(swaggerSpec)
|
||||||
|
api.Logger = noLog
|
||||||
|
|
||||||
|
server := restapi.NewServer(api)
|
||||||
|
// register all APIs
|
||||||
|
server.ConfigureAPI()
|
||||||
|
|
||||||
|
//restapi.GlobalRootCAs, restapi.GlobalPublicCerts, restapi.GlobalTLSCertsManager = globalRootCAs, globalPublicCerts, globalTLSCerts
|
||||||
|
|
||||||
|
consolePort, _ := strconv.Atoi("9090")
|
||||||
|
|
||||||
|
server.Host = "0.0.0.0"
|
||||||
|
server.Port = consolePort
|
||||||
|
restapi.Port = "9090"
|
||||||
|
restapi.Hostname = "0.0.0.0"
|
||||||
|
|
||||||
|
return server, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestMain(m *testing.M) {
|
||||||
|
|
||||||
|
// start console server
|
||||||
|
go func() {
|
||||||
|
fmt.Println("start server")
|
||||||
|
srv, err := initConsoleServer()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
log.Println("init fail")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
srv.Serve()
|
||||||
|
|
||||||
|
}()
|
||||||
|
|
||||||
|
fmt.Println("sleeping")
|
||||||
|
time.Sleep(2 * time.Second)
|
||||||
|
|
||||||
|
client := &http.Client{
|
||||||
|
Timeout: 2 * time.Second,
|
||||||
|
}
|
||||||
|
// get login credentials
|
||||||
|
|
||||||
|
requestData := map[string]string{
|
||||||
|
"accessKey": "minioadmin",
|
||||||
|
"secretKey": "minioadmin",
|
||||||
|
}
|
||||||
|
|
||||||
|
requestDataJSON, _ := json.Marshal(requestData)
|
||||||
|
|
||||||
|
requestDataBody := bytes.NewReader(requestDataJSON)
|
||||||
|
|
||||||
|
request, err := http.NewRequest("POST", "http://localhost:9090/api/v1/login", requestDataBody)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request.Header.Add("Content-Type", "application/json")
|
||||||
|
|
||||||
|
response, err := client.Do(request)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
bodyBytes, _ := ioutil.ReadAll(response.Body)
|
||||||
|
|
||||||
|
loginResponse := models.LoginResponse{}
|
||||||
|
err = json.Unmarshal(bodyBytes, &loginResponse)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
token = loginResponse.SessionID
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
code := m.Run()
|
||||||
|
|
||||||
|
requestDataAdd := map[string]interface{}{
|
||||||
|
"name": "test1",
|
||||||
|
}
|
||||||
|
|
||||||
|
requestDataJSON, _ = json.Marshal(requestDataAdd)
|
||||||
|
|
||||||
|
requestDataBody = bytes.NewReader(requestDataJSON)
|
||||||
|
|
||||||
|
// get list of buckets
|
||||||
|
request, err = http.NewRequest("DELETE", "http://localhost:9090/api/v1/buckets/test1", requestDataBody)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
|
||||||
|
request.Header.Add("Content-Type", "application/json")
|
||||||
|
|
||||||
|
response, err = client.Do(request)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
fmt.Println("DELETE StatusCode:", response.StatusCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
os.Exit(code)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestAddBucket(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
client := &http.Client{
|
||||||
|
Timeout: 2 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
requestDataAdd := map[string]interface{}{
|
||||||
|
"name": "test1",
|
||||||
|
"versioning": false,
|
||||||
|
"locking": false,
|
||||||
|
}
|
||||||
|
|
||||||
|
requestDataJSON, _ := json.Marshal(requestDataAdd)
|
||||||
|
|
||||||
|
requestDataBody := bytes.NewReader(requestDataJSON)
|
||||||
|
|
||||||
|
// get list of buckets
|
||||||
|
request, err := http.NewRequest("POST", "http://localhost:9090/api/v1/buckets", requestDataBody)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
|
||||||
|
request.Header.Add("Content-Type", "application/json")
|
||||||
|
|
||||||
|
response, err := client.Do(request)
|
||||||
|
assert.Nil(err)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
assert.Equal(201, response.StatusCode, "Status Code is incorrect")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestBucketVersioning(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
client := &http.Client{
|
||||||
|
Timeout: 2 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
request, err := http.NewRequest("GET", "http://localhost:9090/api/v1/session", nil)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
|
||||||
|
|
||||||
|
response, err := client.Do(request)
|
||||||
|
assert.Nil(err)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var distributedSystem bool
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
|
||||||
|
bodyBytes, _ := ioutil.ReadAll(response.Body)
|
||||||
|
|
||||||
|
sessionResponse := models.SessionResponse{}
|
||||||
|
err = json.Unmarshal(bodyBytes, &sessionResponse)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
distributedSystem = sessionResponse.DistributedMode
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
requestDataVersioning := map[string]interface{}{
|
||||||
|
"name": "test2",
|
||||||
|
"versioning": true,
|
||||||
|
"locking": false,
|
||||||
|
}
|
||||||
|
|
||||||
|
requestDataJSON, _ := json.Marshal(requestDataVersioning)
|
||||||
|
|
||||||
|
requestDataBody := bytes.NewReader(requestDataJSON)
|
||||||
|
|
||||||
|
request, err = http.NewRequest("POST", "http://localhost:9090/api/v1/buckets", requestDataBody)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
|
||||||
|
request.Header.Add("Content-Type", "application/json")
|
||||||
|
|
||||||
|
response, err = client.Do(request)
|
||||||
|
assert.Nil(err)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Versioned bucket creation test status:", response.Status)
|
||||||
|
if distributedSystem {
|
||||||
|
assert.Equal(201, response.StatusCode, "Versioning test Status Code is incorrect - bucket failed to create")
|
||||||
|
} else {
|
||||||
|
assert.NotEqual(201, response.StatusCode, "Versioning test Status Code is incorrect - versioned bucket created on non-distributed system")
|
||||||
|
}
|
||||||
|
|
||||||
|
request, err = http.NewRequest("DELETE", "http://localhost:9090/api/v1/buckets/test2", requestDataBody)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
|
||||||
|
request.Header.Add("Content-Type", "application/json")
|
||||||
|
|
||||||
|
response, err = client.Do(request)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
fmt.Println("DELETE StatusCode:", response.StatusCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestBucketsGet(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
client := &http.Client{
|
||||||
|
Timeout: 2 * time.Second,
|
||||||
|
}
|
||||||
|
|
||||||
|
// get list of buckets
|
||||||
|
request, err := http.NewRequest("GET", "http://localhost:9090/api/v1/buckets", nil)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
request.Header.Add("Cookie", fmt.Sprintf("token=%s", token))
|
||||||
|
|
||||||
|
response, err := client.Do(request)
|
||||||
|
assert.Nil(err)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
assert.Equal(200, response.StatusCode, "Status Code is incorrect")
|
||||||
|
bodyBytes, _ := ioutil.ReadAll(response.Body)
|
||||||
|
|
||||||
|
listBuckets := models.ListBucketsResponse{}
|
||||||
|
err = json.Unmarshal(bodyBytes, &listBuckets)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
assert.Nil(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
assert.Greater(len(listBuckets.Buckets), 0, "No bucket was returned")
|
||||||
|
assert.Greater(listBuckets.Total, int64(0), "Total buckets is 0")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
71
integration/login_test.go
Normal file
71
integration/login_test.go
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
package integration
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"io/ioutil"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/minio/console/models"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestLoginStrategy(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
// image for now:
|
||||||
|
// minio: 9000
|
||||||
|
// console: 9090
|
||||||
|
|
||||||
|
client := &http.Client{
|
||||||
|
Timeout: 2 * time.Second,
|
||||||
|
}
|
||||||
|
// copy query params
|
||||||
|
request, err := http.NewRequest("GET", "http://localhost:9090/api/v1/login", nil)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
response, err := client.Do(request)
|
||||||
|
assert.Nil(err)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if response != nil {
|
||||||
|
bodyBytes, _ := ioutil.ReadAll(response.Body)
|
||||||
|
|
||||||
|
loginDetails := models.LoginDetails{}
|
||||||
|
|
||||||
|
err = json.Unmarshal(bodyBytes, &loginDetails)
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
assert.Nil(err)
|
||||||
|
|
||||||
|
assert.Equal(models.LoginDetailsLoginStrategyForm, loginDetails.LoginStrategy, "Login Details don't match")
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: console-sa-binding
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: console-sa-role
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: console-sa
|
|
||||||
namespace: default
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: console-sa-role
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- namespaces
|
|
||||||
- secrets
|
|
||||||
- pods
|
|
||||||
- services
|
|
||||||
- events
|
|
||||||
- resourcequotas
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- watch
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- "storage.k8s.io"
|
|
||||||
resources:
|
|
||||||
- storageclasses
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- watch
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- statefulsets
|
|
||||||
- deployments
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- batch
|
|
||||||
resources:
|
|
||||||
- jobs
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- "certificates.k8s.io"
|
|
||||||
resources:
|
|
||||||
- "certificatesigningrequests"
|
|
||||||
- "certificatesigningrequests/approval"
|
|
||||||
- "certificatesigningrequests/status"
|
|
||||||
verbs:
|
|
||||||
- update
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- apiGroups:
|
|
||||||
- minio.min.io
|
|
||||||
resources:
|
|
||||||
- "*"
|
|
||||||
verbs:
|
|
||||||
- "*"
|
|
||||||
- apiGroups:
|
|
||||||
- min.io
|
|
||||||
resources:
|
|
||||||
- "*"
|
|
||||||
verbs:
|
|
||||||
- "*"
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: console-env
|
|
||||||
data:
|
|
||||||
CONSOLE_PORT: "9090"
|
|
||||||
CONSOLE_TLS_PORT: "9443"
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: console
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: console
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: console
|
|
||||||
spec:
|
|
||||||
serviceAccountName: console-sa
|
|
||||||
containers:
|
|
||||||
- name: console
|
|
||||||
image: minio/console:latest
|
|
||||||
imagePullPolicy: "IfNotPresent"
|
|
||||||
args:
|
|
||||||
- /console
|
|
||||||
- server
|
|
||||||
ports:
|
|
||||||
- containerPort: 9090
|
|
||||||
name: http
|
|
||||||
- containerPort: 9433
|
|
||||||
name: https
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: console-sa
|
|
||||||
namespace: default
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: console
|
|
||||||
labels:
|
|
||||||
name: console
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- port: 9090
|
|
||||||
name: http
|
|
||||||
- port: 9443
|
|
||||||
name: https
|
|
||||||
selector:
|
|
||||||
app: console
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
# beginning of customizations
|
|
||||||
resources:
|
|
||||||
- console-service-account.yaml
|
|
||||||
- console-cluster-role.yaml
|
|
||||||
- console-cluster-role-binding.yaml
|
|
||||||
- console-configmap.yaml
|
|
||||||
- console-service.yaml
|
|
||||||
- console-deployment.yaml
|
|
||||||
- minio-operator.yaml
|
|
||||||
@@ -1,282 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: minio-operator
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: tenants.minio.min.io
|
|
||||||
spec:
|
|
||||||
group: minio.min.io
|
|
||||||
scope: Namespaced
|
|
||||||
names:
|
|
||||||
kind: Tenant
|
|
||||||
singular: tenant
|
|
||||||
plural: tenants
|
|
||||||
versions:
|
|
||||||
- name: v1
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
schema:
|
|
||||||
# openAPIV3Schema is the schema for validating custom objects.
|
|
||||||
# Refer https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#specifying-a-structural-schema
|
|
||||||
# for more details
|
|
||||||
openAPIV3Schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
spec:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
image:
|
|
||||||
type: string
|
|
||||||
serviceName:
|
|
||||||
type: string
|
|
||||||
serviceAccountName:
|
|
||||||
type: string
|
|
||||||
zones:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
servers:
|
|
||||||
type: integer
|
|
||||||
volumesPerServer:
|
|
||||||
type: integer
|
|
||||||
volumeClaimTemplate:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
resources:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
nodeSelector:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
affinity:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
tolerations:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
mountPath:
|
|
||||||
type: string
|
|
||||||
podManagementPolicy:
|
|
||||||
type: string
|
|
||||||
enum: [Parallel,OrderedReady]
|
|
||||||
default: Parallel
|
|
||||||
requestAutoCert:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
certConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
commonName:
|
|
||||||
type: string
|
|
||||||
organizationName:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
dnsNames:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
version:
|
|
||||||
type: string
|
|
||||||
mountpath:
|
|
||||||
type: string
|
|
||||||
subpath:
|
|
||||||
type: string
|
|
||||||
nodeSelector:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
credsSecret:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
env:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
console:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
image:
|
|
||||||
type: string
|
|
||||||
replicas:
|
|
||||||
type: integer
|
|
||||||
default: 2
|
|
||||||
consoleSecret:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
resources:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
env:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
kes:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
image:
|
|
||||||
type: string
|
|
||||||
replicas:
|
|
||||||
type: integer
|
|
||||||
default: 2
|
|
||||||
kesSecret:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
liveness:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
initialDelaySeconds:
|
|
||||||
type: integer
|
|
||||||
periodSeconds:
|
|
||||||
type: integer
|
|
||||||
timeoutSeconds:
|
|
||||||
type: integer
|
|
||||||
status:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
currentState:
|
|
||||||
type: string
|
|
||||||
subresources:
|
|
||||||
# status enables the status subresource.
|
|
||||||
status: {}
|
|
||||||
additionalPrinterColumns:
|
|
||||||
- name: Current State
|
|
||||||
type: string
|
|
||||||
jsonPath: ".status.currentState"
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: minio-operator
|
|
||||||
namespace: default
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: minio-operator-role
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- namespaces
|
|
||||||
- secrets
|
|
||||||
- pods
|
|
||||||
- services
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- watch
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- statefulsets
|
|
||||||
- deployments
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- batch
|
|
||||||
resources:
|
|
||||||
- jobs
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- certificates.k8s.io
|
|
||||||
resources:
|
|
||||||
- certificatesigningrequests
|
|
||||||
- certificatesigningrequests/approval
|
|
||||||
- certificatesigningrequests/status
|
|
||||||
verbs:
|
|
||||||
- update
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- certificates.k8s.io
|
|
||||||
resourceNames:
|
|
||||||
- kubernetes.io/legacy-unknown
|
|
||||||
resources:
|
|
||||||
- signers
|
|
||||||
verbs:
|
|
||||||
- approve
|
|
||||||
- sign
|
|
||||||
- apiGroups:
|
|
||||||
- minio.min.io
|
|
||||||
resources:
|
|
||||||
- '*'
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- min.io
|
|
||||||
resources:
|
|
||||||
- '*'
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: minio-operator-binding
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: minio-operator-role
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: minio-operator
|
|
||||||
namespace: default
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: minio-operator
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
name: minio-operator
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
name: minio-operator
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: minio/k8s-operator:v3.0.1
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: minio-operator
|
|
||||||
serviceAccountName: minio-operator
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Get's the latest deployment file from MinIO Operator
|
|
||||||
curl https://raw.githubusercontent.com/minio/operator/master/minio-operator.yaml > operator-console/base/minio-operator.yaml
|
|
||||||
@@ -6,18 +6,51 @@ rules:
|
|||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
- namespaces
|
|
||||||
- secrets
|
- secrets
|
||||||
- pods
|
|
||||||
- services
|
|
||||||
- events
|
|
||||||
- resourcequotas
|
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
- watch
|
- watch
|
||||||
- create
|
- create
|
||||||
- list
|
- list
|
||||||
- patch
|
- patch
|
||||||
|
- update
|
||||||
|
- deletecollection
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- namespaces
|
||||||
|
- services
|
||||||
|
- events
|
||||||
|
- resourcequotas
|
||||||
|
- nodes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- list
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- deletecollection
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumeclaims
|
||||||
|
verbs:
|
||||||
|
- deletecollection
|
||||||
|
- list
|
||||||
|
- get
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- "storage.k8s.io"
|
- "storage.k8s.io"
|
||||||
resources:
|
resources:
|
||||||
@@ -75,3 +108,127 @@ rules:
|
|||||||
- "*"
|
- "*"
|
||||||
verbs:
|
verbs:
|
||||||
- "*"
|
- "*"
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- persistentvolumeclaims
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- snapshot.storage.k8s.io
|
||||||
|
resources:
|
||||||
|
- volumesnapshots
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- snapshot.storage.k8s.io
|
||||||
|
resources:
|
||||||
|
- volumesnapshotcontents
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- storage.k8s.io
|
||||||
|
resources:
|
||||||
|
- csinodes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- storage.k8s.io
|
||||||
|
resources:
|
||||||
|
- volumeattachments
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- endpoints
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- coordination.k8s.io
|
||||||
|
resources:
|
||||||
|
- leases
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- direct.csi.min.io
|
||||||
|
resources:
|
||||||
|
- volumes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- direct.csi.min.io
|
||||||
|
resources:
|
||||||
|
- directcsidrives
|
||||||
|
- directcsivolumes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pod
|
||||||
|
- pods/log
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
|||||||
@@ -15,13 +15,12 @@ spec:
|
|||||||
serviceAccountName: console-sa
|
serviceAccountName: console-sa
|
||||||
containers:
|
containers:
|
||||||
- name: console
|
- name: console
|
||||||
image: minio/console:latest
|
image: minio/console:v0.10.0
|
||||||
imagePullPolicy: "IfNotPresent"
|
imagePullPolicy: "IfNotPresent"
|
||||||
env:
|
env:
|
||||||
- name: CONSOLE_OPERATOR_MODE
|
- name: CONSOLE_OPERATOR_MODE
|
||||||
value: "on"
|
value: "on"
|
||||||
args:
|
args:
|
||||||
- /console
|
|
||||||
- server
|
- server
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 9090
|
- containerPort: 9090
|
||||||
|
|||||||
@@ -8,4 +8,3 @@ resources:
|
|||||||
- console-configmap.yaml
|
- console-configmap.yaml
|
||||||
- console-service.yaml
|
- console-service.yaml
|
||||||
- console-deployment.yaml
|
- console-deployment.yaml
|
||||||
- minio-operator.yaml
|
|
||||||
|
|||||||
@@ -1,282 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: minio-operator
|
|
||||||
---
|
|
||||||
apiVersion: apiextensions.k8s.io/v1
|
|
||||||
kind: CustomResourceDefinition
|
|
||||||
metadata:
|
|
||||||
name: tenants.minio.min.io
|
|
||||||
spec:
|
|
||||||
group: minio.min.io
|
|
||||||
scope: Namespaced
|
|
||||||
names:
|
|
||||||
kind: Tenant
|
|
||||||
singular: tenant
|
|
||||||
plural: tenants
|
|
||||||
versions:
|
|
||||||
- name: v1
|
|
||||||
served: true
|
|
||||||
storage: true
|
|
||||||
schema:
|
|
||||||
# openAPIV3Schema is the schema for validating custom objects.
|
|
||||||
# Refer https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#specifying-a-structural-schema
|
|
||||||
# for more details
|
|
||||||
openAPIV3Schema:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
spec:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
image:
|
|
||||||
type: string
|
|
||||||
serviceName:
|
|
||||||
type: string
|
|
||||||
serviceAccountName:
|
|
||||||
type: string
|
|
||||||
zones:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
servers:
|
|
||||||
type: integer
|
|
||||||
volumesPerServer:
|
|
||||||
type: integer
|
|
||||||
volumeClaimTemplate:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
resources:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
nodeSelector:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
affinity:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
tolerations:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
mountPath:
|
|
||||||
type: string
|
|
||||||
podManagementPolicy:
|
|
||||||
type: string
|
|
||||||
enum: [Parallel,OrderedReady]
|
|
||||||
default: Parallel
|
|
||||||
requestAutoCert:
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
certConfig:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
commonName:
|
|
||||||
type: string
|
|
||||||
organizationName:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
dnsNames:
|
|
||||||
type: array
|
|
||||||
items:
|
|
||||||
type: string
|
|
||||||
version:
|
|
||||||
type: string
|
|
||||||
mountpath:
|
|
||||||
type: string
|
|
||||||
subpath:
|
|
||||||
type: string
|
|
||||||
nodeSelector:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
credsSecret:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
env:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
console:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
image:
|
|
||||||
type: string
|
|
||||||
replicas:
|
|
||||||
type: integer
|
|
||||||
default: 2
|
|
||||||
consoleSecret:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
resources:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
env:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
kes:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
properties:
|
|
||||||
metadata:
|
|
||||||
type: object
|
|
||||||
x-kubernetes-preserve-unknown-fields: true
|
|
||||||
image:
|
|
||||||
type: string
|
|
||||||
replicas:
|
|
||||||
type: integer
|
|
||||||
default: 2
|
|
||||||
kesSecret:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
name:
|
|
||||||
type: string
|
|
||||||
liveness:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
initialDelaySeconds:
|
|
||||||
type: integer
|
|
||||||
periodSeconds:
|
|
||||||
type: integer
|
|
||||||
timeoutSeconds:
|
|
||||||
type: integer
|
|
||||||
status:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
currentState:
|
|
||||||
type: string
|
|
||||||
subresources:
|
|
||||||
# status enables the status subresource.
|
|
||||||
status: {}
|
|
||||||
additionalPrinterColumns:
|
|
||||||
- name: Current State
|
|
||||||
type: string
|
|
||||||
jsonPath: ".status.currentState"
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: minio-operator
|
|
||||||
namespace: default
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: minio-operator-role
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- namespaces
|
|
||||||
- secrets
|
|
||||||
- pods
|
|
||||||
- services
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- watch
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- statefulsets
|
|
||||||
- deployments
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- batch
|
|
||||||
resources:
|
|
||||||
- jobs
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- list
|
|
||||||
- patch
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- certificates.k8s.io
|
|
||||||
resources:
|
|
||||||
- certificatesigningrequests
|
|
||||||
- certificatesigningrequests/approval
|
|
||||||
- certificatesigningrequests/status
|
|
||||||
verbs:
|
|
||||||
- update
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- certificates.k8s.io
|
|
||||||
resourceNames:
|
|
||||||
- kubernetes.io/legacy-unknown
|
|
||||||
resources:
|
|
||||||
- signers
|
|
||||||
verbs:
|
|
||||||
- approve
|
|
||||||
- sign
|
|
||||||
- apiGroups:
|
|
||||||
- minio.min.io
|
|
||||||
resources:
|
|
||||||
- '*'
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
- apiGroups:
|
|
||||||
- min.io
|
|
||||||
resources:
|
|
||||||
- '*'
|
|
||||||
verbs:
|
|
||||||
- '*'
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: minio-operator-binding
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: minio-operator-role
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: minio-operator
|
|
||||||
namespace: default
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: minio-operator
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
name: minio-operator
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
name: minio-operator
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- image: minio/k8s-operator:v3.0.1
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
name: minio-operator
|
|
||||||
serviceAccountName: minio-operator
|
|
||||||
9
k8s/operator-console/operator/kustomization.yaml
Normal file
9
k8s/operator-console/operator/kustomization.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
# beginning of customizations
|
||||||
|
#namespace: min-ns
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- ../base
|
||||||
|
- https://github.com/minio/operator/?ref=v3.0.29
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
// This file is part of MinIO Kubernetes Cloud
|
// This file is part of MinIO Kubernetes Cloud
|
||||||
// Copyright (c) 2019 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
// You should have received a copy of the GNU Affero General Public License
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
// This package imports things required by build scripts, to force `go mod` to see them as dependencies
|
// Package k8s - this package imports things required by build scripts, to force `go mod` to see them as dependencies
|
||||||
package k8s
|
package k8s
|
||||||
|
|
||||||
//import _ "k8s.io/code-generator"
|
// import _ "k8s.io/code-generator"
|
||||||
|
|||||||
70
models/access_rule.go
Normal file
70
models/access_rule.go
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AccessRule access rule
|
||||||
|
//
|
||||||
|
// swagger:model accessRule
|
||||||
|
type AccessRule struct {
|
||||||
|
|
||||||
|
// access
|
||||||
|
Access string `json:"access,omitempty"`
|
||||||
|
|
||||||
|
// prefix
|
||||||
|
Prefix string `json:"prefix,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this access rule
|
||||||
|
func (m *AccessRule) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this access rule based on context it is used
|
||||||
|
func (m *AccessRule) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *AccessRule) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *AccessRule) UnmarshalBinary(b []byte) error {
|
||||||
|
var res AccessRule
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
105
models/account_change_password_request.go
Normal file
105
models/account_change_password_request.go
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
"github.com/go-openapi/validate"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AccountChangePasswordRequest account change password request
|
||||||
|
//
|
||||||
|
// swagger:model accountChangePasswordRequest
|
||||||
|
type AccountChangePasswordRequest struct {
|
||||||
|
|
||||||
|
// current secret key
|
||||||
|
// Required: true
|
||||||
|
CurrentSecretKey *string `json:"current_secret_key"`
|
||||||
|
|
||||||
|
// new secret key
|
||||||
|
// Required: true
|
||||||
|
NewSecretKey *string `json:"new_secret_key"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this account change password request
|
||||||
|
func (m *AccountChangePasswordRequest) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateCurrentSecretKey(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateNewSecretKey(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AccountChangePasswordRequest) validateCurrentSecretKey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("current_secret_key", "body", m.CurrentSecretKey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AccountChangePasswordRequest) validateNewSecretKey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("new_secret_key", "body", m.NewSecretKey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this account change password request based on context it is used
|
||||||
|
func (m *AccountChangePasswordRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *AccountChangePasswordRequest) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *AccountChangePasswordRequest) UnmarshalBinary(b []byte) error {
|
||||||
|
var res AccountChangePasswordRequest
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
100
models/add_bucket_lifecycle.go
Normal file
100
models/add_bucket_lifecycle.go
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AddBucketLifecycle add bucket lifecycle
|
||||||
|
//
|
||||||
|
// swagger:model addBucketLifecycle
|
||||||
|
type AddBucketLifecycle struct {
|
||||||
|
|
||||||
|
// Non required, toggle to disable or enable rule
|
||||||
|
Disable bool `json:"disable,omitempty"`
|
||||||
|
|
||||||
|
// Non required, toggle to disable or enable rule
|
||||||
|
ExpiredObjectDeleteMarker bool `json:"expired_object_delete_marker,omitempty"`
|
||||||
|
|
||||||
|
// Required in case of expiry_days or transition fields are not set. it defines an expiry date for ILM
|
||||||
|
ExpiryDate string `json:"expiry_date,omitempty"`
|
||||||
|
|
||||||
|
// Required in case of expiry_date or transition fields are not set. it defines an expiry days for ILM
|
||||||
|
ExpiryDays int32 `json:"expiry_days,omitempty"`
|
||||||
|
|
||||||
|
// Non required, can be set in case of expiration is enabled
|
||||||
|
NoncurrentversionExpirationDays int32 `json:"noncurrentversion_expiration_days,omitempty"`
|
||||||
|
|
||||||
|
// Non required, can be set in case of transition is enabled
|
||||||
|
NoncurrentversionTransitionDays int32 `json:"noncurrentversion_transition_days,omitempty"`
|
||||||
|
|
||||||
|
// Non required, can be set in case of transition is enabled
|
||||||
|
NoncurrentversionTransitionStorageClass string `json:"noncurrentversion_transition_storage_class,omitempty"`
|
||||||
|
|
||||||
|
// Non required field, it matches a prefix to perform ILM operations on it
|
||||||
|
Prefix string `json:"prefix,omitempty"`
|
||||||
|
|
||||||
|
// Required only in case of transition is set. it refers to a tier
|
||||||
|
StorageClass string `json:"storage_class,omitempty"`
|
||||||
|
|
||||||
|
// Non required field, tags to match ILM files
|
||||||
|
Tags string `json:"tags,omitempty"`
|
||||||
|
|
||||||
|
// Required in case of transition_days or expiry fields are not set. it defines a transition date for ILM
|
||||||
|
TransitionDate string `json:"transition_date,omitempty"`
|
||||||
|
|
||||||
|
// Required in case of transition_date or expiry fields are not set. it defines a transition days for ILM
|
||||||
|
TransitionDays int32 `json:"transition_days,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this add bucket lifecycle
|
||||||
|
func (m *AddBucketLifecycle) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this add bucket lifecycle based on context it is used
|
||||||
|
func (m *AddBucketLifecycle) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *AddBucketLifecycle) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *AddBucketLifecycle) UnmarshalBinary(b []byte) error {
|
||||||
|
var res AddBucketLifecycle
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
70
models/add_bucket_replication.go
Normal file
70
models/add_bucket_replication.go
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AddBucketReplication add bucket replication
|
||||||
|
//
|
||||||
|
// swagger:model addBucketReplication
|
||||||
|
type AddBucketReplication struct {
|
||||||
|
|
||||||
|
// arn
|
||||||
|
Arn string `json:"arn,omitempty"`
|
||||||
|
|
||||||
|
// destination bucket
|
||||||
|
DestinationBucket string `json:"destination_bucket,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this add bucket replication
|
||||||
|
func (m *AddBucketReplication) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this add bucket replication based on context it is used
|
||||||
|
func (m *AddBucketReplication) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *AddBucketReplication) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *AddBucketReplication) UnmarshalBinary(b []byte) error {
|
||||||
|
var res AddBucketReplication
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
@@ -79,6 +81,11 @@ func (m *AddGroupRequest) validateMembers(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this add group request based on context it is used
|
||||||
|
func (m *AddGroupRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *AddGroupRequest) MarshalBinary() ([]byte, error) {
|
func (m *AddGroupRequest) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
@@ -79,6 +81,11 @@ func (m *AddPolicyRequest) validatePolicy(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this add policy request based on context it is used
|
||||||
|
func (m *AddPolicyRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *AddPolicyRequest) MarshalBinary() ([]byte, error) {
|
func (m *AddPolicyRequest) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
@@ -42,6 +44,10 @@ type AddUserRequest struct {
|
|||||||
// Required: true
|
// Required: true
|
||||||
Groups []string `json:"groups"`
|
Groups []string `json:"groups"`
|
||||||
|
|
||||||
|
// policies
|
||||||
|
// Required: true
|
||||||
|
Policies []string `json:"policies"`
|
||||||
|
|
||||||
// secret key
|
// secret key
|
||||||
// Required: true
|
// Required: true
|
||||||
SecretKey *string `json:"secretKey"`
|
SecretKey *string `json:"secretKey"`
|
||||||
@@ -59,6 +65,10 @@ func (m *AddUserRequest) Validate(formats strfmt.Registry) error {
|
|||||||
res = append(res, err)
|
res = append(res, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := m.validatePolicies(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
if err := m.validateSecretKey(formats); err != nil {
|
if err := m.validateSecretKey(formats); err != nil {
|
||||||
res = append(res, err)
|
res = append(res, err)
|
||||||
}
|
}
|
||||||
@@ -87,6 +97,15 @@ func (m *AddUserRequest) validateGroups(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *AddUserRequest) validatePolicies(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("policies", "body", m.Policies); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *AddUserRequest) validateSecretKey(formats strfmt.Registry) error {
|
func (m *AddUserRequest) validateSecretKey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
if err := validate.Required("secretKey", "body", m.SecretKey); err != nil {
|
if err := validate.Required("secretKey", "body", m.SecretKey); err != nil {
|
||||||
@@ -96,6 +115,11 @@ func (m *AddUserRequest) validateSecretKey(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this add user request based on context it is used
|
||||||
|
func (m *AddUserRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *AddUserRequest) MarshalBinary() ([]byte, error) {
|
func (m *AddUserRequest) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,10 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
)
|
)
|
||||||
@@ -38,12 +42,133 @@ type AdminInfoResponse struct {
|
|||||||
// objects
|
// objects
|
||||||
Objects int64 `json:"objects,omitempty"`
|
Objects int64 `json:"objects,omitempty"`
|
||||||
|
|
||||||
|
// servers
|
||||||
|
Servers []*ServerProperties `json:"servers"`
|
||||||
|
|
||||||
// usage
|
// usage
|
||||||
Usage int64 `json:"usage,omitempty"`
|
Usage int64 `json:"usage,omitempty"`
|
||||||
|
|
||||||
|
// widgets
|
||||||
|
Widgets []*Widget `json:"widgets"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate validates this admin info response
|
// Validate validates this admin info response
|
||||||
func (m *AdminInfoResponse) Validate(formats strfmt.Registry) error {
|
func (m *AdminInfoResponse) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateServers(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateWidgets(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AdminInfoResponse) validateServers(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Servers) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Servers); i++ {
|
||||||
|
if swag.IsZero(m.Servers[i]) { // not required
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Servers[i] != nil {
|
||||||
|
if err := m.Servers[i].Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("servers" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AdminInfoResponse) validateWidgets(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Widgets) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Widgets); i++ {
|
||||||
|
if swag.IsZero(m.Widgets[i]) { // not required
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Widgets[i] != nil {
|
||||||
|
if err := m.Widgets[i].Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("widgets" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this admin info response based on the context it is used
|
||||||
|
func (m *AdminInfoResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateServers(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateWidgets(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AdminInfoResponse) contextValidateServers(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Servers); i++ {
|
||||||
|
|
||||||
|
if m.Servers[i] != nil {
|
||||||
|
if err := m.Servers[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("servers" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AdminInfoResponse) contextValidateWidgets(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Widgets); i++ {
|
||||||
|
|
||||||
|
if m.Widgets[i] != nil {
|
||||||
|
if err := m.Widgets[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("widgets" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
)
|
)
|
||||||
@@ -41,6 +43,11 @@ func (m *ArnsResponse) Validate(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this arns response based on context it is used
|
||||||
|
func (m *ArnsResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *ArnsResponse) MarshalBinary() ([]byte, error) {
|
func (m *ArnsResponse) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
321
models/aws_configuration.go
Normal file
321
models/aws_configuration.go
Normal file
@@ -0,0 +1,321 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
"github.com/go-openapi/validate"
|
||||||
|
)
|
||||||
|
|
||||||
|
// AwsConfiguration aws configuration
|
||||||
|
//
|
||||||
|
// swagger:model awsConfiguration
|
||||||
|
type AwsConfiguration struct {
|
||||||
|
|
||||||
|
// secretsmanager
|
||||||
|
// Required: true
|
||||||
|
Secretsmanager *AwsConfigurationSecretsmanager `json:"secretsmanager"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this aws configuration
|
||||||
|
func (m *AwsConfiguration) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateSecretsmanager(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfiguration) validateSecretsmanager(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("secretsmanager", "body", m.Secretsmanager); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Secretsmanager != nil {
|
||||||
|
if err := m.Secretsmanager.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("secretsmanager")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this aws configuration based on the context it is used
|
||||||
|
func (m *AwsConfiguration) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateSecretsmanager(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfiguration) contextValidateSecretsmanager(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Secretsmanager != nil {
|
||||||
|
if err := m.Secretsmanager.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("secretsmanager")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *AwsConfiguration) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *AwsConfiguration) UnmarshalBinary(b []byte) error {
|
||||||
|
var res AwsConfiguration
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// AwsConfigurationSecretsmanager aws configuration secretsmanager
|
||||||
|
//
|
||||||
|
// swagger:model AwsConfigurationSecretsmanager
|
||||||
|
type AwsConfigurationSecretsmanager struct {
|
||||||
|
|
||||||
|
// credentials
|
||||||
|
// Required: true
|
||||||
|
Credentials *AwsConfigurationSecretsmanagerCredentials `json:"credentials"`
|
||||||
|
|
||||||
|
// endpoint
|
||||||
|
// Required: true
|
||||||
|
Endpoint *string `json:"endpoint"`
|
||||||
|
|
||||||
|
// kmskey
|
||||||
|
Kmskey string `json:"kmskey,omitempty"`
|
||||||
|
|
||||||
|
// region
|
||||||
|
// Required: true
|
||||||
|
Region *string `json:"region"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this aws configuration secretsmanager
|
||||||
|
func (m *AwsConfigurationSecretsmanager) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateCredentials(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateEndpoint(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateRegion(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfigurationSecretsmanager) validateCredentials(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("secretsmanager"+"."+"credentials", "body", m.Credentials); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Credentials != nil {
|
||||||
|
if err := m.Credentials.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("secretsmanager" + "." + "credentials")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfigurationSecretsmanager) validateEndpoint(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("secretsmanager"+"."+"endpoint", "body", m.Endpoint); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfigurationSecretsmanager) validateRegion(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("secretsmanager"+"."+"region", "body", m.Region); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this aws configuration secretsmanager based on the context it is used
|
||||||
|
func (m *AwsConfigurationSecretsmanager) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateCredentials(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfigurationSecretsmanager) contextValidateCredentials(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Credentials != nil {
|
||||||
|
if err := m.Credentials.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("secretsmanager" + "." + "credentials")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *AwsConfigurationSecretsmanager) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *AwsConfigurationSecretsmanager) UnmarshalBinary(b []byte) error {
|
||||||
|
var res AwsConfigurationSecretsmanager
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// AwsConfigurationSecretsmanagerCredentials aws configuration secretsmanager credentials
|
||||||
|
//
|
||||||
|
// swagger:model AwsConfigurationSecretsmanagerCredentials
|
||||||
|
type AwsConfigurationSecretsmanagerCredentials struct {
|
||||||
|
|
||||||
|
// accesskey
|
||||||
|
// Required: true
|
||||||
|
Accesskey *string `json:"accesskey"`
|
||||||
|
|
||||||
|
// secretkey
|
||||||
|
// Required: true
|
||||||
|
Secretkey *string `json:"secretkey"`
|
||||||
|
|
||||||
|
// token
|
||||||
|
Token string `json:"token,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this aws configuration secretsmanager credentials
|
||||||
|
func (m *AwsConfigurationSecretsmanagerCredentials) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateAccesskey(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateSecretkey(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfigurationSecretsmanagerCredentials) validateAccesskey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("secretsmanager"+"."+"credentials"+"."+"accesskey", "body", m.Accesskey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *AwsConfigurationSecretsmanagerCredentials) validateSecretkey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("secretsmanager"+"."+"credentials"+"."+"secretkey", "body", m.Secretkey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this aws configuration secretsmanager credentials based on context it is used
|
||||||
|
func (m *AwsConfigurationSecretsmanagerCredentials) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *AwsConfigurationSecretsmanagerCredentials) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *AwsConfigurationSecretsmanagerCredentials) UnmarshalBinary(b []byte) error {
|
||||||
|
var res AwsConfigurationSecretsmanagerCredentials
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
@@ -35,7 +37,7 @@ import (
|
|||||||
type Bucket struct {
|
type Bucket struct {
|
||||||
|
|
||||||
// access
|
// access
|
||||||
Access BucketAccess `json:"access,omitempty"`
|
Access *BucketAccess `json:"access,omitempty"`
|
||||||
|
|
||||||
// creation date
|
// creation date
|
||||||
CreationDate string `json:"creation_date,omitempty"`
|
CreationDate string `json:"creation_date,omitempty"`
|
||||||
@@ -68,16 +70,17 @@ func (m *Bucket) Validate(formats strfmt.Registry) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Bucket) validateAccess(formats strfmt.Registry) error {
|
func (m *Bucket) validateAccess(formats strfmt.Registry) error {
|
||||||
|
|
||||||
if swag.IsZero(m.Access) { // not required
|
if swag.IsZero(m.Access) { // not required
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := m.Access.Validate(formats); err != nil {
|
if m.Access != nil {
|
||||||
if ve, ok := err.(*errors.Validation); ok {
|
if err := m.Access.Validate(formats); err != nil {
|
||||||
return ve.ValidateName("access")
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("access")
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@@ -89,13 +92,41 @@ func (m *Bucket) validateName(formats strfmt.Registry) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := validate.MinLength("name", "body", string(*m.Name), 3); err != nil {
|
if err := validate.MinLength("name", "body", *m.Name, 3); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this bucket based on the context it is used
|
||||||
|
func (m *Bucket) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateAccess(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Bucket) contextValidateAccess(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Access != nil {
|
||||||
|
if err := m.Access.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("access")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *Bucket) MarshalBinary() ([]byte, error) {
|
func (m *Bucket) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,7 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
@@ -35,6 +36,11 @@ import (
|
|||||||
// swagger:model bucketAccess
|
// swagger:model bucketAccess
|
||||||
type BucketAccess string
|
type BucketAccess string
|
||||||
|
|
||||||
|
func NewBucketAccess(value BucketAccess) *BucketAccess {
|
||||||
|
v := value
|
||||||
|
return &v
|
||||||
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
||||||
// BucketAccessPRIVATE captures enum value "PRIVATE"
|
// BucketAccessPRIVATE captures enum value "PRIVATE"
|
||||||
@@ -81,3 +87,8 @@ func (m BucketAccess) Validate(formats strfmt.Registry) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket access based on context it is used
|
||||||
|
func (m BucketAccess) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|||||||
70
models/bucket_encryption_info.go
Normal file
70
models/bucket_encryption_info.go
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketEncryptionInfo bucket encryption info
|
||||||
|
//
|
||||||
|
// swagger:model bucketEncryptionInfo
|
||||||
|
type BucketEncryptionInfo struct {
|
||||||
|
|
||||||
|
// algorithm
|
||||||
|
Algorithm string `json:"algorithm,omitempty"`
|
||||||
|
|
||||||
|
// kms master key ID
|
||||||
|
KmsMasterKeyID string `json:"kmsMasterKeyID,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket encryption info
|
||||||
|
func (m *BucketEncryptionInfo) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket encryption info based on context it is used
|
||||||
|
func (m *BucketEncryptionInfo) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketEncryptionInfo) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketEncryptionInfo) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketEncryptionInfo
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
120
models/bucket_encryption_request.go
Normal file
120
models/bucket_encryption_request.go
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketEncryptionRequest bucket encryption request
|
||||||
|
//
|
||||||
|
// swagger:model bucketEncryptionRequest
|
||||||
|
type BucketEncryptionRequest struct {
|
||||||
|
|
||||||
|
// enc type
|
||||||
|
EncType *BucketEncryptionType `json:"encType,omitempty"`
|
||||||
|
|
||||||
|
// kms key ID
|
||||||
|
KmsKeyID string `json:"kmsKeyID,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket encryption request
|
||||||
|
func (m *BucketEncryptionRequest) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateEncType(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketEncryptionRequest) validateEncType(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.EncType) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.EncType != nil {
|
||||||
|
if err := m.EncType.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("encType")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this bucket encryption request based on the context it is used
|
||||||
|
func (m *BucketEncryptionRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateEncType(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketEncryptionRequest) contextValidateEncType(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.EncType != nil {
|
||||||
|
if err := m.EncType.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("encType")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketEncryptionRequest) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketEncryptionRequest) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketEncryptionRequest
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
91
models/bucket_encryption_type.go
Normal file
91
models/bucket_encryption_type.go
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/validate"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketEncryptionType bucket encryption type
|
||||||
|
//
|
||||||
|
// swagger:model bucketEncryptionType
|
||||||
|
type BucketEncryptionType string
|
||||||
|
|
||||||
|
func NewBucketEncryptionType(value BucketEncryptionType) *BucketEncryptionType {
|
||||||
|
v := value
|
||||||
|
return &v
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
|
||||||
|
// BucketEncryptionTypeSseDashS3 captures enum value "sse-s3"
|
||||||
|
BucketEncryptionTypeSseDashS3 BucketEncryptionType = "sse-s3"
|
||||||
|
|
||||||
|
// BucketEncryptionTypeSseDashKms captures enum value "sse-kms"
|
||||||
|
BucketEncryptionTypeSseDashKms BucketEncryptionType = "sse-kms"
|
||||||
|
)
|
||||||
|
|
||||||
|
// for schema
|
||||||
|
var bucketEncryptionTypeEnum []interface{}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
var res []BucketEncryptionType
|
||||||
|
if err := json.Unmarshal([]byte(`["sse-s3","sse-kms"]`), &res); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
for _, v := range res {
|
||||||
|
bucketEncryptionTypeEnum = append(bucketEncryptionTypeEnum, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m BucketEncryptionType) validateBucketEncryptionTypeEnum(path, location string, value BucketEncryptionType) error {
|
||||||
|
if err := validate.EnumCase(path, location, value, bucketEncryptionTypeEnum, true); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket encryption type
|
||||||
|
func (m BucketEncryptionType) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
// value enum
|
||||||
|
if err := m.validateBucketEncryptionTypeEnum("", "body", m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket encryption type based on context it is used
|
||||||
|
func (m BucketEncryptionType) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
@@ -74,6 +76,34 @@ func (m *BucketEventRequest) validateConfiguration(formats strfmt.Registry) erro
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this bucket event request based on the context it is used
|
||||||
|
func (m *BucketEventRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateConfiguration(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketEventRequest) contextValidateConfiguration(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Configuration != nil {
|
||||||
|
if err := m.Configuration.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("configuration")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *BucketEventRequest) MarshalBinary() ([]byte, error) {
|
func (m *BucketEventRequest) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
129
models/bucket_lifecycle_response.go
Normal file
129
models/bucket_lifecycle_response.go
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketLifecycleResponse bucket lifecycle response
|
||||||
|
//
|
||||||
|
// swagger:model bucketLifecycleResponse
|
||||||
|
type BucketLifecycleResponse struct {
|
||||||
|
|
||||||
|
// lifecycle
|
||||||
|
Lifecycle []*ObjectBucketLifecycle `json:"lifecycle"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket lifecycle response
|
||||||
|
func (m *BucketLifecycleResponse) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateLifecycle(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketLifecycleResponse) validateLifecycle(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Lifecycle) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Lifecycle); i++ {
|
||||||
|
if swag.IsZero(m.Lifecycle[i]) { // not required
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Lifecycle[i] != nil {
|
||||||
|
if err := m.Lifecycle[i].Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("lifecycle" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this bucket lifecycle response based on the context it is used
|
||||||
|
func (m *BucketLifecycleResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateLifecycle(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketLifecycleResponse) contextValidateLifecycle(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Lifecycle); i++ {
|
||||||
|
|
||||||
|
if m.Lifecycle[i] != nil {
|
||||||
|
if err := m.Lifecycle[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("lifecycle" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketLifecycleResponse) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketLifecycleResponse) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketLifecycleResponse
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
67
models/bucket_ob_locking_response.go
Normal file
67
models/bucket_ob_locking_response.go
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketObLockingResponse bucket ob locking response
|
||||||
|
//
|
||||||
|
// swagger:model bucketObLockingResponse
|
||||||
|
type BucketObLockingResponse struct {
|
||||||
|
|
||||||
|
// object locking enabled
|
||||||
|
ObjectLockingEnabled bool `json:"object_locking_enabled,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket ob locking response
|
||||||
|
func (m *BucketObLockingResponse) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket ob locking response based on context it is used
|
||||||
|
func (m *BucketObLockingResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketObLockingResponse) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketObLockingResponse) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketObLockingResponse
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
112
models/bucket_object.go
Normal file
112
models/bucket_object.go
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketObject bucket object
|
||||||
|
//
|
||||||
|
// swagger:model bucketObject
|
||||||
|
type BucketObject struct {
|
||||||
|
|
||||||
|
// content type
|
||||||
|
ContentType string `json:"content_type,omitempty"`
|
||||||
|
|
||||||
|
// expiration
|
||||||
|
Expiration string `json:"expiration,omitempty"`
|
||||||
|
|
||||||
|
// expiration rule id
|
||||||
|
ExpirationRuleID string `json:"expiration_rule_id,omitempty"`
|
||||||
|
|
||||||
|
// is delete marker
|
||||||
|
IsDeleteMarker bool `json:"is_delete_marker,omitempty"`
|
||||||
|
|
||||||
|
// is latest
|
||||||
|
IsLatest bool `json:"is_latest,omitempty"`
|
||||||
|
|
||||||
|
// last modified
|
||||||
|
LastModified string `json:"last_modified,omitempty"`
|
||||||
|
|
||||||
|
// legal hold status
|
||||||
|
LegalHoldStatus string `json:"legal_hold_status,omitempty"`
|
||||||
|
|
||||||
|
// metadata
|
||||||
|
Metadata map[string]string `json:"metadata,omitempty"`
|
||||||
|
|
||||||
|
// name
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
|
||||||
|
// retention mode
|
||||||
|
RetentionMode string `json:"retention_mode,omitempty"`
|
||||||
|
|
||||||
|
// retention until date
|
||||||
|
RetentionUntilDate string `json:"retention_until_date,omitempty"`
|
||||||
|
|
||||||
|
// size
|
||||||
|
Size int64 `json:"size,omitempty"`
|
||||||
|
|
||||||
|
// tags
|
||||||
|
Tags map[string]string `json:"tags,omitempty"`
|
||||||
|
|
||||||
|
// user metadata
|
||||||
|
UserMetadata map[string]string `json:"user_metadata,omitempty"`
|
||||||
|
|
||||||
|
// user tags
|
||||||
|
UserTags map[string]string `json:"user_tags,omitempty"`
|
||||||
|
|
||||||
|
// version id
|
||||||
|
VersionID string `json:"version_id,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket object
|
||||||
|
func (m *BucketObject) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket object based on context it is used
|
||||||
|
func (m *BucketObject) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketObject) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketObject) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketObject
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
125
models/bucket_quota.go
Normal file
125
models/bucket_quota.go
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
"github.com/go-openapi/validate"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketQuota bucket quota
|
||||||
|
//
|
||||||
|
// swagger:model bucketQuota
|
||||||
|
type BucketQuota struct {
|
||||||
|
|
||||||
|
// quota
|
||||||
|
Quota int64 `json:"quota,omitempty"`
|
||||||
|
|
||||||
|
// type
|
||||||
|
// Enum: [hard fifo]
|
||||||
|
Type string `json:"type,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket quota
|
||||||
|
func (m *BucketQuota) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateType(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var bucketQuotaTypeTypePropEnum []interface{}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
var res []string
|
||||||
|
if err := json.Unmarshal([]byte(`["hard","fifo"]`), &res); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
for _, v := range res {
|
||||||
|
bucketQuotaTypeTypePropEnum = append(bucketQuotaTypeTypePropEnum, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
|
||||||
|
// BucketQuotaTypeHard captures enum value "hard"
|
||||||
|
BucketQuotaTypeHard string = "hard"
|
||||||
|
|
||||||
|
// BucketQuotaTypeFifo captures enum value "fifo"
|
||||||
|
BucketQuotaTypeFifo string = "fifo"
|
||||||
|
)
|
||||||
|
|
||||||
|
// prop value enum
|
||||||
|
func (m *BucketQuota) validateTypeEnum(path, location string, value string) error {
|
||||||
|
if err := validate.EnumCase(path, location, value, bucketQuotaTypeTypePropEnum, true); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketQuota) validateType(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Type) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// value enum
|
||||||
|
if err := m.validateTypeEnum("type", "body", m.Type); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket quota based on context it is used
|
||||||
|
func (m *BucketQuota) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketQuota) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketQuota) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketQuota
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
67
models/bucket_replication_destination.go
Normal file
67
models/bucket_replication_destination.go
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketReplicationDestination bucket replication destination
|
||||||
|
//
|
||||||
|
// swagger:model bucketReplicationDestination
|
||||||
|
type BucketReplicationDestination struct {
|
||||||
|
|
||||||
|
// bucket
|
||||||
|
Bucket string `json:"bucket,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket replication destination
|
||||||
|
func (m *BucketReplicationDestination) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket replication destination based on context it is used
|
||||||
|
func (m *BucketReplicationDestination) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketReplicationDestination) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketReplicationDestination) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketReplicationDestination
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
129
models/bucket_replication_response.go
Normal file
129
models/bucket_replication_response.go
Normal file
@@ -0,0 +1,129 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketReplicationResponse bucket replication response
|
||||||
|
//
|
||||||
|
// swagger:model bucketReplicationResponse
|
||||||
|
type BucketReplicationResponse struct {
|
||||||
|
|
||||||
|
// rules
|
||||||
|
Rules []*BucketReplicationRule `json:"rules"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket replication response
|
||||||
|
func (m *BucketReplicationResponse) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateRules(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketReplicationResponse) validateRules(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Rules) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Rules); i++ {
|
||||||
|
if swag.IsZero(m.Rules[i]) { // not required
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Rules[i] != nil {
|
||||||
|
if err := m.Rules[i].Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("rules" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this bucket replication response based on the context it is used
|
||||||
|
func (m *BucketReplicationResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateRules(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketReplicationResponse) contextValidateRules(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Rules); i++ {
|
||||||
|
|
||||||
|
if m.Rules[i] != nil {
|
||||||
|
if err := m.Rules[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("rules" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketReplicationResponse) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketReplicationResponse) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketReplicationResponse
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
246
models/bucket_replication_rule.go
Normal file
246
models/bucket_replication_rule.go
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
"github.com/go-openapi/validate"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketReplicationRule bucket replication rule
|
||||||
|
//
|
||||||
|
// swagger:model bucketReplicationRule
|
||||||
|
type BucketReplicationRule struct {
|
||||||
|
|
||||||
|
// bandwidth
|
||||||
|
Bandwidth string `json:"bandwidth,omitempty"`
|
||||||
|
|
||||||
|
// delete marker replication
|
||||||
|
DeleteMarkerReplication bool `json:"delete_marker_replication,omitempty"`
|
||||||
|
|
||||||
|
// deletes replication
|
||||||
|
DeletesReplication bool `json:"deletes_replication,omitempty"`
|
||||||
|
|
||||||
|
// destination
|
||||||
|
Destination *BucketReplicationDestination `json:"destination,omitempty"`
|
||||||
|
|
||||||
|
// health check period
|
||||||
|
HealthCheckPeriod int64 `json:"healthCheckPeriod,omitempty"`
|
||||||
|
|
||||||
|
// id
|
||||||
|
ID string `json:"id,omitempty"`
|
||||||
|
|
||||||
|
// metadata replication
|
||||||
|
MetadataReplication bool `json:"metadata_replication,omitempty"`
|
||||||
|
|
||||||
|
// prefix
|
||||||
|
Prefix string `json:"prefix,omitempty"`
|
||||||
|
|
||||||
|
// priority
|
||||||
|
Priority int32 `json:"priority,omitempty"`
|
||||||
|
|
||||||
|
// status
|
||||||
|
// Enum: [Enabled Disabled]
|
||||||
|
Status string `json:"status,omitempty"`
|
||||||
|
|
||||||
|
// sync mode
|
||||||
|
// Enum: [async sync]
|
||||||
|
SyncMode *string `json:"syncMode,omitempty"`
|
||||||
|
|
||||||
|
// tags
|
||||||
|
Tags string `json:"tags,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket replication rule
|
||||||
|
func (m *BucketReplicationRule) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateDestination(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateStatus(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateSyncMode(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketReplicationRule) validateDestination(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Destination) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Destination != nil {
|
||||||
|
if err := m.Destination.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("destination")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var bucketReplicationRuleTypeStatusPropEnum []interface{}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
var res []string
|
||||||
|
if err := json.Unmarshal([]byte(`["Enabled","Disabled"]`), &res); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
for _, v := range res {
|
||||||
|
bucketReplicationRuleTypeStatusPropEnum = append(bucketReplicationRuleTypeStatusPropEnum, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
|
||||||
|
// BucketReplicationRuleStatusEnabled captures enum value "Enabled"
|
||||||
|
BucketReplicationRuleStatusEnabled string = "Enabled"
|
||||||
|
|
||||||
|
// BucketReplicationRuleStatusDisabled captures enum value "Disabled"
|
||||||
|
BucketReplicationRuleStatusDisabled string = "Disabled"
|
||||||
|
)
|
||||||
|
|
||||||
|
// prop value enum
|
||||||
|
func (m *BucketReplicationRule) validateStatusEnum(path, location string, value string) error {
|
||||||
|
if err := validate.EnumCase(path, location, value, bucketReplicationRuleTypeStatusPropEnum, true); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketReplicationRule) validateStatus(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Status) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// value enum
|
||||||
|
if err := m.validateStatusEnum("status", "body", m.Status); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var bucketReplicationRuleTypeSyncModePropEnum []interface{}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
var res []string
|
||||||
|
if err := json.Unmarshal([]byte(`["async","sync"]`), &res); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
for _, v := range res {
|
||||||
|
bucketReplicationRuleTypeSyncModePropEnum = append(bucketReplicationRuleTypeSyncModePropEnum, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
|
||||||
|
// BucketReplicationRuleSyncModeAsync captures enum value "async"
|
||||||
|
BucketReplicationRuleSyncModeAsync string = "async"
|
||||||
|
|
||||||
|
// BucketReplicationRuleSyncModeSync captures enum value "sync"
|
||||||
|
BucketReplicationRuleSyncModeSync string = "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
// prop value enum
|
||||||
|
func (m *BucketReplicationRule) validateSyncModeEnum(path, location string, value string) error {
|
||||||
|
if err := validate.EnumCase(path, location, value, bucketReplicationRuleTypeSyncModePropEnum, true); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketReplicationRule) validateSyncMode(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.SyncMode) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// value enum
|
||||||
|
if err := m.validateSyncModeEnum("syncMode", "body", *m.SyncMode); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this bucket replication rule based on the context it is used
|
||||||
|
func (m *BucketReplicationRule) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateDestination(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *BucketReplicationRule) contextValidateDestination(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Destination != nil {
|
||||||
|
if err := m.Destination.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("destination")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketReplicationRule) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketReplicationRule) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketReplicationRule
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
67
models/bucket_versioning_response.go
Normal file
67
models/bucket_versioning_response.go
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// BucketVersioningResponse bucket versioning response
|
||||||
|
//
|
||||||
|
// swagger:model bucketVersioningResponse
|
||||||
|
type BucketVersioningResponse struct {
|
||||||
|
|
||||||
|
// is versioned
|
||||||
|
IsVersioned bool `json:"is_versioned,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this bucket versioning response
|
||||||
|
func (m *BucketVersioningResponse) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bucket versioning response based on context it is used
|
||||||
|
func (m *BucketVersioningResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *BucketVersioningResponse) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *BucketVersioningResponse) UnmarshalBinary(b []byte) error {
|
||||||
|
var res BucketVersioningResponse
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
@@ -79,6 +81,11 @@ func (m *BulkUserGroups) validateUsers(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this bulk user groups based on context it is used
|
||||||
|
func (m *BulkUserGroups) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *BulkUserGroups) MarshalBinary() ([]byte, error) {
|
func (m *BulkUserGroups) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
76
models/certificate_info.go
Normal file
76
models/certificate_info.go
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CertificateInfo certificate info
|
||||||
|
//
|
||||||
|
// swagger:model certificateInfo
|
||||||
|
type CertificateInfo struct {
|
||||||
|
|
||||||
|
// domains
|
||||||
|
Domains []string `json:"domains"`
|
||||||
|
|
||||||
|
// expiry
|
||||||
|
Expiry string `json:"expiry,omitempty"`
|
||||||
|
|
||||||
|
// name
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
|
||||||
|
// serial number
|
||||||
|
SerialNumber string `json:"serialNumber,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this certificate info
|
||||||
|
func (m *CertificateInfo) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this certificate info based on context it is used
|
||||||
|
func (m *CertificateInfo) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *CertificateInfo) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *CertificateInfo) UnmarshalBinary(b []byte) error {
|
||||||
|
var res CertificateInfo
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
105
models/change_user_password_request.go
Normal file
105
models/change_user_password_request.go
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
"github.com/go-openapi/validate"
|
||||||
|
)
|
||||||
|
|
||||||
|
// ChangeUserPasswordRequest change user password request
|
||||||
|
//
|
||||||
|
// swagger:model changeUserPasswordRequest
|
||||||
|
type ChangeUserPasswordRequest struct {
|
||||||
|
|
||||||
|
// new secret key
|
||||||
|
// Required: true
|
||||||
|
NewSecretKey *string `json:"newSecretKey"`
|
||||||
|
|
||||||
|
// selected user
|
||||||
|
// Required: true
|
||||||
|
SelectedUser *string `json:"selectedUser"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this change user password request
|
||||||
|
func (m *ChangeUserPasswordRequest) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateNewSecretKey(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateSelectedUser(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ChangeUserPasswordRequest) validateNewSecretKey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("newSecretKey", "body", m.NewSecretKey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *ChangeUserPasswordRequest) validateSelectedUser(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("selectedUser", "body", m.SelectedUser); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this change user password request based on context it is used
|
||||||
|
func (m *ChangeUserPasswordRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *ChangeUserPasswordRequest) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *ChangeUserPasswordRequest) UnmarshalBinary(b []byte) error {
|
||||||
|
var res ChangeUserPasswordRequest
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
)
|
)
|
||||||
@@ -44,6 +46,11 @@ func (m *ConfigDescription) Validate(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this config description based on context it is used
|
||||||
|
func (m *ConfigDescription) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *ConfigDescription) MarshalBinary() ([]byte, error) {
|
func (m *ConfigDescription) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,7 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
@@ -57,7 +58,6 @@ func (m *Configuration) Validate(formats strfmt.Registry) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Configuration) validateKeyValues(formats strfmt.Registry) error {
|
func (m *Configuration) validateKeyValues(formats strfmt.Registry) error {
|
||||||
|
|
||||||
if swag.IsZero(m.KeyValues) { // not required
|
if swag.IsZero(m.KeyValues) { // not required
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@@ -81,6 +81,38 @@ func (m *Configuration) validateKeyValues(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this configuration based on the context it is used
|
||||||
|
func (m *Configuration) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateKeyValues(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Configuration) contextValidateKeyValues(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.KeyValues); i++ {
|
||||||
|
|
||||||
|
if m.KeyValues[i] != nil {
|
||||||
|
if err := m.KeyValues[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("key_values" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *Configuration) MarshalBinary() ([]byte, error) {
|
func (m *Configuration) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
)
|
)
|
||||||
@@ -44,6 +46,11 @@ func (m *ConfigurationKV) Validate(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this configuration k v based on context it is used
|
||||||
|
func (m *ConfigurationKV) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *ConfigurationKV) MarshalBinary() ([]byte, error) {
|
func (m *ConfigurationKV) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
226
models/create_remote_bucket.go
Normal file
226
models/create_remote_bucket.go
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"encoding/json"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
"github.com/go-openapi/validate"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CreateRemoteBucket create remote bucket
|
||||||
|
//
|
||||||
|
// swagger:model createRemoteBucket
|
||||||
|
type CreateRemoteBucket struct {
|
||||||
|
|
||||||
|
// access key
|
||||||
|
// Required: true
|
||||||
|
// Min Length: 3
|
||||||
|
AccessKey *string `json:"accessKey"`
|
||||||
|
|
||||||
|
// bandwidth
|
||||||
|
Bandwidth int64 `json:"bandwidth,omitempty"`
|
||||||
|
|
||||||
|
// health check period
|
||||||
|
HealthCheckPeriod int32 `json:"healthCheckPeriod,omitempty"`
|
||||||
|
|
||||||
|
// region
|
||||||
|
Region string `json:"region,omitempty"`
|
||||||
|
|
||||||
|
// secret key
|
||||||
|
// Required: true
|
||||||
|
// Min Length: 8
|
||||||
|
SecretKey *string `json:"secretKey"`
|
||||||
|
|
||||||
|
// source bucket
|
||||||
|
// Required: true
|
||||||
|
SourceBucket *string `json:"sourceBucket"`
|
||||||
|
|
||||||
|
// sync mode
|
||||||
|
// Enum: [async sync]
|
||||||
|
SyncMode *string `json:"syncMode,omitempty"`
|
||||||
|
|
||||||
|
// target bucket
|
||||||
|
// Required: true
|
||||||
|
TargetBucket *string `json:"targetBucket"`
|
||||||
|
|
||||||
|
// target URL
|
||||||
|
// Required: true
|
||||||
|
TargetURL *string `json:"targetURL"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this create remote bucket
|
||||||
|
func (m *CreateRemoteBucket) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateAccessKey(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateSecretKey(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateSourceBucket(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateSyncMode(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateTargetBucket(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateTargetURL(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateRemoteBucket) validateAccessKey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("accessKey", "body", m.AccessKey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validate.MinLength("accessKey", "body", *m.AccessKey, 3); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateRemoteBucket) validateSecretKey(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("secretKey", "body", m.SecretKey); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := validate.MinLength("secretKey", "body", *m.SecretKey, 8); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateRemoteBucket) validateSourceBucket(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("sourceBucket", "body", m.SourceBucket); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var createRemoteBucketTypeSyncModePropEnum []interface{}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
var res []string
|
||||||
|
if err := json.Unmarshal([]byte(`["async","sync"]`), &res); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
for _, v := range res {
|
||||||
|
createRemoteBucketTypeSyncModePropEnum = append(createRemoteBucketTypeSyncModePropEnum, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
|
||||||
|
// CreateRemoteBucketSyncModeAsync captures enum value "async"
|
||||||
|
CreateRemoteBucketSyncModeAsync string = "async"
|
||||||
|
|
||||||
|
// CreateRemoteBucketSyncModeSync captures enum value "sync"
|
||||||
|
CreateRemoteBucketSyncModeSync string = "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
// prop value enum
|
||||||
|
func (m *CreateRemoteBucket) validateSyncModeEnum(path, location string, value string) error {
|
||||||
|
if err := validate.EnumCase(path, location, value, createRemoteBucketTypeSyncModePropEnum, true); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateRemoteBucket) validateSyncMode(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.SyncMode) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// value enum
|
||||||
|
if err := m.validateSyncModeEnum("syncMode", "body", *m.SyncMode); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateRemoteBucket) validateTargetBucket(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("targetBucket", "body", m.TargetBucket); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateRemoteBucket) validateTargetURL(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("targetURL", "body", m.TargetURL); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this create remote bucket based on context it is used
|
||||||
|
func (m *CreateRemoteBucket) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *CreateRemoteBucket) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *CreateRemoteBucket) UnmarshalBinary(b []byte) error {
|
||||||
|
var res CreateRemoteBucket
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,7 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
@@ -45,12 +46,42 @@ type CreateTenantRequest struct {
|
|||||||
// enable console
|
// enable console
|
||||||
EnableConsole *bool `json:"enable_console,omitempty"`
|
EnableConsole *bool `json:"enable_console,omitempty"`
|
||||||
|
|
||||||
// enable ssl
|
// enable prometheus
|
||||||
EnableSsl *bool `json:"enable_ssl,omitempty"`
|
EnablePrometheus *bool `json:"enable_prometheus,omitempty"`
|
||||||
|
|
||||||
|
// enable tls
|
||||||
|
EnableTLS *bool `json:"enable_tls,omitempty"`
|
||||||
|
|
||||||
|
// encryption
|
||||||
|
Encryption *EncryptionConfiguration `json:"encryption,omitempty"`
|
||||||
|
|
||||||
|
// erasure coding parity
|
||||||
|
ErasureCodingParity int64 `json:"erasureCodingParity,omitempty"`
|
||||||
|
|
||||||
|
// expose console
|
||||||
|
ExposeConsole bool `json:"expose_console,omitempty"`
|
||||||
|
|
||||||
|
// expose minio
|
||||||
|
ExposeMinio bool `json:"expose_minio,omitempty"`
|
||||||
|
|
||||||
|
// idp
|
||||||
|
Idp *IdpConfiguration `json:"idp,omitempty"`
|
||||||
|
|
||||||
// image
|
// image
|
||||||
Image string `json:"image,omitempty"`
|
Image string `json:"image,omitempty"`
|
||||||
|
|
||||||
|
// image pull secret
|
||||||
|
ImagePullSecret string `json:"image_pull_secret,omitempty"`
|
||||||
|
|
||||||
|
// image registry
|
||||||
|
ImageRegistry *ImageRegistry `json:"image_registry,omitempty"`
|
||||||
|
|
||||||
|
// labels
|
||||||
|
Labels map[string]string `json:"labels,omitempty"`
|
||||||
|
|
||||||
|
// log search configuration
|
||||||
|
LogSearchConfiguration *LogSearchConfiguration `json:"logSearchConfiguration,omitempty"`
|
||||||
|
|
||||||
// mounth path
|
// mounth path
|
||||||
MounthPath string `json:"mounth_path,omitempty"`
|
MounthPath string `json:"mounth_path,omitempty"`
|
||||||
|
|
||||||
@@ -63,21 +94,40 @@ type CreateTenantRequest struct {
|
|||||||
// Required: true
|
// Required: true
|
||||||
Namespace *string `json:"namespace"`
|
Namespace *string `json:"namespace"`
|
||||||
|
|
||||||
|
// pools
|
||||||
|
// Required: true
|
||||||
|
Pools []*Pool `json:"pools"`
|
||||||
|
|
||||||
|
// prometheus configuration
|
||||||
|
PrometheusConfiguration *PrometheusConfiguration `json:"prometheusConfiguration,omitempty"`
|
||||||
|
|
||||||
// secret key
|
// secret key
|
||||||
SecretKey string `json:"secret_key,omitempty"`
|
SecretKey string `json:"secret_key,omitempty"`
|
||||||
|
|
||||||
// service name
|
// tls
|
||||||
ServiceName string `json:"service_name,omitempty"`
|
TLS *TLSConfiguration `json:"tls,omitempty"`
|
||||||
|
|
||||||
// zones
|
|
||||||
// Required: true
|
|
||||||
Zones []*Zone `json:"zones"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate validates this create tenant request
|
// Validate validates this create tenant request
|
||||||
func (m *CreateTenantRequest) Validate(formats strfmt.Registry) error {
|
func (m *CreateTenantRequest) Validate(formats strfmt.Registry) error {
|
||||||
var res []error
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateEncryption(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateIdp(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateImageRegistry(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateLogSearchConfiguration(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
if err := m.validateName(formats); err != nil {
|
if err := m.validateName(formats); err != nil {
|
||||||
res = append(res, err)
|
res = append(res, err)
|
||||||
}
|
}
|
||||||
@@ -86,7 +136,15 @@ func (m *CreateTenantRequest) Validate(formats strfmt.Registry) error {
|
|||||||
res = append(res, err)
|
res = append(res, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := m.validateZones(formats); err != nil {
|
if err := m.validatePools(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validatePrometheusConfiguration(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateTLS(formats); err != nil {
|
||||||
res = append(res, err)
|
res = append(res, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,13 +154,81 @@ func (m *CreateTenantRequest) Validate(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) validateEncryption(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Encryption) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Encryption != nil {
|
||||||
|
if err := m.Encryption.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("encryption")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) validateIdp(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Idp) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Idp != nil {
|
||||||
|
if err := m.Idp.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("idp")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) validateImageRegistry(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.ImageRegistry) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.ImageRegistry != nil {
|
||||||
|
if err := m.ImageRegistry.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("image_registry")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) validateLogSearchConfiguration(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.LogSearchConfiguration) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.LogSearchConfiguration != nil {
|
||||||
|
if err := m.LogSearchConfiguration.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("logSearchConfiguration")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *CreateTenantRequest) validateName(formats strfmt.Registry) error {
|
func (m *CreateTenantRequest) validateName(formats strfmt.Registry) error {
|
||||||
|
|
||||||
if err := validate.Required("name", "body", m.Name); err != nil {
|
if err := validate.Required("name", "body", m.Name); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := validate.Pattern("name", "body", string(*m.Name), `^[a-z0-9-]{3,63}$`); err != nil {
|
if err := validate.Pattern("name", "body", *m.Name, `^[a-z0-9-]{3,63}$`); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,21 +244,21 @@ func (m *CreateTenantRequest) validateNamespace(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *CreateTenantRequest) validateZones(formats strfmt.Registry) error {
|
func (m *CreateTenantRequest) validatePools(formats strfmt.Registry) error {
|
||||||
|
|
||||||
if err := validate.Required("zones", "body", m.Zones); err != nil {
|
if err := validate.Required("pools", "body", m.Pools); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < len(m.Zones); i++ {
|
for i := 0; i < len(m.Pools); i++ {
|
||||||
if swag.IsZero(m.Zones[i]) { // not required
|
if swag.IsZero(m.Pools[i]) { // not required
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if m.Zones[i] != nil {
|
if m.Pools[i] != nil {
|
||||||
if err := m.Zones[i].Validate(formats); err != nil {
|
if err := m.Pools[i].Validate(formats); err != nil {
|
||||||
if ve, ok := err.(*errors.Validation); ok {
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
return ve.ValidateName("zones" + "." + strconv.Itoa(i))
|
return ve.ValidateName("pools" + "." + strconv.Itoa(i))
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -143,6 +269,180 @@ func (m *CreateTenantRequest) validateZones(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) validatePrometheusConfiguration(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.PrometheusConfiguration) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.PrometheusConfiguration != nil {
|
||||||
|
if err := m.PrometheusConfiguration.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("prometheusConfiguration")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) validateTLS(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.TLS) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.TLS != nil {
|
||||||
|
if err := m.TLS.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("tls")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this create tenant request based on the context it is used
|
||||||
|
func (m *CreateTenantRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateEncryption(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateIdp(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateImageRegistry(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateLogSearchConfiguration(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidatePools(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidatePrometheusConfiguration(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateTLS(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) contextValidateEncryption(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Encryption != nil {
|
||||||
|
if err := m.Encryption.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("encryption")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) contextValidateIdp(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Idp != nil {
|
||||||
|
if err := m.Idp.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("idp")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) contextValidateImageRegistry(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.ImageRegistry != nil {
|
||||||
|
if err := m.ImageRegistry.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("image_registry")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) contextValidateLogSearchConfiguration(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.LogSearchConfiguration != nil {
|
||||||
|
if err := m.LogSearchConfiguration.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("logSearchConfiguration")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) contextValidatePools(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Pools); i++ {
|
||||||
|
|
||||||
|
if m.Pools[i] != nil {
|
||||||
|
if err := m.Pools[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("pools" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) contextValidatePrometheusConfiguration(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.PrometheusConfiguration != nil {
|
||||||
|
if err := m.PrometheusConfiguration.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("prometheusConfiguration")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantRequest) contextValidateTLS(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.TLS != nil {
|
||||||
|
if err := m.TLS.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("tls")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *CreateTenantRequest) MarshalBinary() ([]byte, error) {
|
func (m *CreateTenantRequest) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,10 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
)
|
)
|
||||||
@@ -32,15 +36,80 @@ import (
|
|||||||
// swagger:model createTenantResponse
|
// swagger:model createTenantResponse
|
||||||
type CreateTenantResponse struct {
|
type CreateTenantResponse struct {
|
||||||
|
|
||||||
// access key
|
// console
|
||||||
AccessKey string `json:"access_key,omitempty"`
|
Console []*TenantResponseItem `json:"console"`
|
||||||
|
|
||||||
// secret key
|
// external ID p
|
||||||
SecretKey string `json:"secret_key,omitempty"`
|
ExternalIDP bool `json:"externalIDP,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate validates this create tenant response
|
// Validate validates this create tenant response
|
||||||
func (m *CreateTenantResponse) Validate(formats strfmt.Registry) error {
|
func (m *CreateTenantResponse) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateConsole(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantResponse) validateConsole(formats strfmt.Registry) error {
|
||||||
|
if swag.IsZero(m.Console) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Console); i++ {
|
||||||
|
if swag.IsZero(m.Console[i]) { // not required
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Console[i] != nil {
|
||||||
|
if err := m.Console[i].Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("console" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this create tenant response based on the context it is used
|
||||||
|
func (m *CreateTenantResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
if err := m.contextValidateConsole(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *CreateTenantResponse) contextValidateConsole(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
for i := 0; i < len(m.Console); i++ {
|
||||||
|
|
||||||
|
if m.Console[i] != nil {
|
||||||
|
if err := m.Console[i].ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("console" + "." + strconv.Itoa(i))
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
73
models/csi_format_error_response.go
Normal file
73
models/csi_format_error_response.go
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// CsiFormatErrorResponse csi format error response
|
||||||
|
//
|
||||||
|
// swagger:model csiFormatErrorResponse
|
||||||
|
type CsiFormatErrorResponse struct {
|
||||||
|
|
||||||
|
// drive
|
||||||
|
Drive string `json:"drive,omitempty"`
|
||||||
|
|
||||||
|
// error
|
||||||
|
Error string `json:"error,omitempty"`
|
||||||
|
|
||||||
|
// node
|
||||||
|
Node string `json:"node,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this csi format error response
|
||||||
|
func (m *CsiFormatErrorResponse) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this csi format error response based on context it is used
|
||||||
|
func (m *CsiFormatErrorResponse) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *CsiFormatErrorResponse) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *CsiFormatErrorResponse) UnmarshalBinary(b []byte) error {
|
||||||
|
var res CsiFormatErrorResponse
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
73
models/delete_file.go
Normal file
73
models/delete_file.go
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeleteFile delete file
|
||||||
|
//
|
||||||
|
// swagger:model deleteFile
|
||||||
|
type DeleteFile struct {
|
||||||
|
|
||||||
|
// path
|
||||||
|
Path string `json:"path,omitempty"`
|
||||||
|
|
||||||
|
// recursive
|
||||||
|
Recursive bool `json:"recursive,omitempty"`
|
||||||
|
|
||||||
|
// version ID
|
||||||
|
VersionID string `json:"versionID,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this delete file
|
||||||
|
func (m *DeleteFile) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this delete file based on context it is used
|
||||||
|
func (m *DeleteFile) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *DeleteFile) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *DeleteFile) UnmarshalBinary(b []byte) error {
|
||||||
|
var res DeleteFile
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
67
models/delete_tenant_request.go
Normal file
67
models/delete_tenant_request.go
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DeleteTenantRequest delete tenant request
|
||||||
|
//
|
||||||
|
// swagger:model deleteTenantRequest
|
||||||
|
type DeleteTenantRequest struct {
|
||||||
|
|
||||||
|
// delete pvcs
|
||||||
|
DeletePvcs bool `json:"delete_pvcs,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this delete tenant request
|
||||||
|
func (m *DeleteTenantRequest) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this delete tenant request based on context it is used
|
||||||
|
func (m *DeleteTenantRequest) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *DeleteTenantRequest) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *DeleteTenantRequest) UnmarshalBinary(b []byte) error {
|
||||||
|
var res DeleteTenantRequest
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
85
models/direct_c_s_i_drive_info.go
Normal file
85
models/direct_c_s_i_drive_info.go
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DirectCSIDriveInfo direct c s i drive info
|
||||||
|
//
|
||||||
|
// swagger:model directCSIDriveInfo
|
||||||
|
type DirectCSIDriveInfo struct {
|
||||||
|
|
||||||
|
// allocated
|
||||||
|
Allocated int64 `json:"allocated,omitempty"`
|
||||||
|
|
||||||
|
// capacity
|
||||||
|
Capacity int64 `json:"capacity,omitempty"`
|
||||||
|
|
||||||
|
// drive
|
||||||
|
Drive string `json:"drive,omitempty"`
|
||||||
|
|
||||||
|
// message
|
||||||
|
Message string `json:"message,omitempty"`
|
||||||
|
|
||||||
|
// node
|
||||||
|
Node string `json:"node,omitempty"`
|
||||||
|
|
||||||
|
// status
|
||||||
|
Status string `json:"status,omitempty"`
|
||||||
|
|
||||||
|
// volumes
|
||||||
|
Volumes int64 `json:"volumes,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this direct c s i drive info
|
||||||
|
func (m *DirectCSIDriveInfo) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this direct c s i drive info based on context it is used
|
||||||
|
func (m *DirectCSIDriveInfo) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *DirectCSIDriveInfo) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *DirectCSIDriveInfo) UnmarshalBinary(b []byte) error {
|
||||||
|
var res DirectCSIDriveInfo
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
76
models/direct_c_s_i_volume_info.go
Normal file
76
models/direct_c_s_i_volume_info.go
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DirectCSIVolumeInfo direct c s i volume info
|
||||||
|
//
|
||||||
|
// swagger:model directCSIVolumeInfo
|
||||||
|
type DirectCSIVolumeInfo struct {
|
||||||
|
|
||||||
|
// capacity
|
||||||
|
Capacity int64 `json:"capacity,omitempty"`
|
||||||
|
|
||||||
|
// drive
|
||||||
|
Drive string `json:"drive,omitempty"`
|
||||||
|
|
||||||
|
// node
|
||||||
|
Node string `json:"node,omitempty"`
|
||||||
|
|
||||||
|
// volume
|
||||||
|
Volume string `json:"volume,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this direct c s i volume info
|
||||||
|
func (m *DirectCSIVolumeInfo) Validate(formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this direct c s i volume info based on context it is used
|
||||||
|
func (m *DirectCSIVolumeInfo) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *DirectCSIVolumeInfo) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *DirectCSIVolumeInfo) UnmarshalBinary(b []byte) error {
|
||||||
|
var res DirectCSIVolumeInfo
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
451
models/encryption_configuration.go
Normal file
451
models/encryption_configuration.go
Normal file
@@ -0,0 +1,451 @@
|
|||||||
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
|
// This file is part of MinIO Console Server
|
||||||
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
//
|
||||||
|
|
||||||
|
package models
|
||||||
|
|
||||||
|
// This file was generated by the swagger tool.
|
||||||
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/go-openapi/errors"
|
||||||
|
"github.com/go-openapi/strfmt"
|
||||||
|
"github.com/go-openapi/swag"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EncryptionConfiguration encryption configuration
|
||||||
|
//
|
||||||
|
// swagger:model encryptionConfiguration
|
||||||
|
type EncryptionConfiguration struct {
|
||||||
|
MetadataFields
|
||||||
|
|
||||||
|
// aws
|
||||||
|
Aws *AwsConfiguration `json:"aws,omitempty"`
|
||||||
|
|
||||||
|
// client
|
||||||
|
Client *KeyPairConfiguration `json:"client,omitempty"`
|
||||||
|
|
||||||
|
// gcp
|
||||||
|
Gcp *GcpConfiguration `json:"gcp,omitempty"`
|
||||||
|
|
||||||
|
// gemalto
|
||||||
|
Gemalto *GemaltoConfiguration `json:"gemalto,omitempty"`
|
||||||
|
|
||||||
|
// image
|
||||||
|
Image string `json:"image,omitempty"`
|
||||||
|
|
||||||
|
// replicas
|
||||||
|
Replicas string `json:"replicas,omitempty"`
|
||||||
|
|
||||||
|
// server
|
||||||
|
Server *KeyPairConfiguration `json:"server,omitempty"`
|
||||||
|
|
||||||
|
// vault
|
||||||
|
Vault *VaultConfiguration `json:"vault,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON unmarshals this object from a JSON structure
|
||||||
|
func (m *EncryptionConfiguration) UnmarshalJSON(raw []byte) error {
|
||||||
|
// AO0
|
||||||
|
var aO0 MetadataFields
|
||||||
|
if err := swag.ReadJSON(raw, &aO0); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
m.MetadataFields = aO0
|
||||||
|
|
||||||
|
// AO1
|
||||||
|
var dataAO1 struct {
|
||||||
|
Aws *AwsConfiguration `json:"aws,omitempty"`
|
||||||
|
|
||||||
|
Client *KeyPairConfiguration `json:"client,omitempty"`
|
||||||
|
|
||||||
|
Gcp *GcpConfiguration `json:"gcp,omitempty"`
|
||||||
|
|
||||||
|
Gemalto *GemaltoConfiguration `json:"gemalto,omitempty"`
|
||||||
|
|
||||||
|
Image string `json:"image,omitempty"`
|
||||||
|
|
||||||
|
Replicas string `json:"replicas,omitempty"`
|
||||||
|
|
||||||
|
Server *KeyPairConfiguration `json:"server,omitempty"`
|
||||||
|
|
||||||
|
Vault *VaultConfiguration `json:"vault,omitempty"`
|
||||||
|
}
|
||||||
|
if err := swag.ReadJSON(raw, &dataAO1); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
m.Aws = dataAO1.Aws
|
||||||
|
|
||||||
|
m.Client = dataAO1.Client
|
||||||
|
|
||||||
|
m.Gcp = dataAO1.Gcp
|
||||||
|
|
||||||
|
m.Gemalto = dataAO1.Gemalto
|
||||||
|
|
||||||
|
m.Image = dataAO1.Image
|
||||||
|
|
||||||
|
m.Replicas = dataAO1.Replicas
|
||||||
|
|
||||||
|
m.Server = dataAO1.Server
|
||||||
|
|
||||||
|
m.Vault = dataAO1.Vault
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalJSON marshals this object to a JSON structure
|
||||||
|
func (m EncryptionConfiguration) MarshalJSON() ([]byte, error) {
|
||||||
|
_parts := make([][]byte, 0, 2)
|
||||||
|
|
||||||
|
aO0, err := swag.WriteJSON(m.MetadataFields)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
_parts = append(_parts, aO0)
|
||||||
|
var dataAO1 struct {
|
||||||
|
Aws *AwsConfiguration `json:"aws,omitempty"`
|
||||||
|
|
||||||
|
Client *KeyPairConfiguration `json:"client,omitempty"`
|
||||||
|
|
||||||
|
Gcp *GcpConfiguration `json:"gcp,omitempty"`
|
||||||
|
|
||||||
|
Gemalto *GemaltoConfiguration `json:"gemalto,omitempty"`
|
||||||
|
|
||||||
|
Image string `json:"image,omitempty"`
|
||||||
|
|
||||||
|
Replicas string `json:"replicas,omitempty"`
|
||||||
|
|
||||||
|
Server *KeyPairConfiguration `json:"server,omitempty"`
|
||||||
|
|
||||||
|
Vault *VaultConfiguration `json:"vault,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
dataAO1.Aws = m.Aws
|
||||||
|
|
||||||
|
dataAO1.Client = m.Client
|
||||||
|
|
||||||
|
dataAO1.Gcp = m.Gcp
|
||||||
|
|
||||||
|
dataAO1.Gemalto = m.Gemalto
|
||||||
|
|
||||||
|
dataAO1.Image = m.Image
|
||||||
|
|
||||||
|
dataAO1.Replicas = m.Replicas
|
||||||
|
|
||||||
|
dataAO1.Server = m.Server
|
||||||
|
|
||||||
|
dataAO1.Vault = m.Vault
|
||||||
|
|
||||||
|
jsonDataAO1, errAO1 := swag.WriteJSON(dataAO1)
|
||||||
|
if errAO1 != nil {
|
||||||
|
return nil, errAO1
|
||||||
|
}
|
||||||
|
_parts = append(_parts, jsonDataAO1)
|
||||||
|
return swag.ConcatJSON(_parts...), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validate validates this encryption configuration
|
||||||
|
func (m *EncryptionConfiguration) Validate(formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
// validation for a type composition with MetadataFields
|
||||||
|
if err := m.MetadataFields.Validate(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateAws(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateClient(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateGcp(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateGemalto(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateServer(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.validateVault(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) validateAws(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if swag.IsZero(m.Aws) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Aws != nil {
|
||||||
|
if err := m.Aws.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("aws")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) validateClient(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if swag.IsZero(m.Client) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Client != nil {
|
||||||
|
if err := m.Client.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("client")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) validateGcp(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if swag.IsZero(m.Gcp) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Gcp != nil {
|
||||||
|
if err := m.Gcp.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("gcp")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) validateGemalto(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if swag.IsZero(m.Gemalto) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Gemalto != nil {
|
||||||
|
if err := m.Gemalto.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("gemalto")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) validateServer(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if swag.IsZero(m.Server) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Server != nil {
|
||||||
|
if err := m.Server.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("server")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) validateVault(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if swag.IsZero(m.Vault) { // not required
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if m.Vault != nil {
|
||||||
|
if err := m.Vault.Validate(formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("vault")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContextValidate validate this encryption configuration based on the context it is used
|
||||||
|
func (m *EncryptionConfiguration) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
var res []error
|
||||||
|
|
||||||
|
// validation for a type composition with MetadataFields
|
||||||
|
if err := m.MetadataFields.ContextValidate(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateAws(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateClient(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateGcp(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateGemalto(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateServer(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := m.contextValidateVault(ctx, formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(res) > 0 {
|
||||||
|
return errors.CompositeValidationError(res...)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) contextValidateAws(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Aws != nil {
|
||||||
|
if err := m.Aws.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("aws")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) contextValidateClient(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Client != nil {
|
||||||
|
if err := m.Client.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("client")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) contextValidateGcp(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Gcp != nil {
|
||||||
|
if err := m.Gcp.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("gcp")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) contextValidateGemalto(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Gemalto != nil {
|
||||||
|
if err := m.Gemalto.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("gemalto")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) contextValidateServer(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Server != nil {
|
||||||
|
if err := m.Server.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("server")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *EncryptionConfiguration) contextValidateVault(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if m.Vault != nil {
|
||||||
|
if err := m.Vault.ContextValidate(ctx, formats); err != nil {
|
||||||
|
if ve, ok := err.(*errors.Validation); ok {
|
||||||
|
return ve.ValidateName("vault")
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalBinary interface implementation
|
||||||
|
func (m *EncryptionConfiguration) MarshalBinary() ([]byte, error) {
|
||||||
|
if m == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
return swag.WriteJSON(m)
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalBinary interface implementation
|
||||||
|
func (m *EncryptionConfiguration) UnmarshalBinary(b []byte) error {
|
||||||
|
var res EncryptionConfiguration
|
||||||
|
if err := swag.ReadJSON(b, &res); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
*m = res
|
||||||
|
return nil
|
||||||
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Code generated by go-swagger; DO NOT EDIT.
|
// Code generated by go-swagger; DO NOT EDIT.
|
||||||
|
|
||||||
// This file is part of MinIO Console Server
|
// This file is part of MinIO Console Server
|
||||||
// Copyright (c) 2020 MinIO, Inc.
|
// Copyright (c) 2021 MinIO, Inc.
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Affero General Public License as published by
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
@@ -23,6 +23,8 @@ package models
|
|||||||
// Editing this file might prove futile when you re-run the swagger generate command
|
// Editing this file might prove futile when you re-run the swagger generate command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/go-openapi/errors"
|
"github.com/go-openapi/errors"
|
||||||
"github.com/go-openapi/strfmt"
|
"github.com/go-openapi/strfmt"
|
||||||
"github.com/go-openapi/swag"
|
"github.com/go-openapi/swag"
|
||||||
@@ -35,7 +37,11 @@ import (
|
|||||||
type Error struct {
|
type Error struct {
|
||||||
|
|
||||||
// code
|
// code
|
||||||
Code int64 `json:"code,omitempty"`
|
Code int32 `json:"code,omitempty"`
|
||||||
|
|
||||||
|
// detailed message
|
||||||
|
// Required: true
|
||||||
|
DetailedMessage *string `json:"detailedMessage"`
|
||||||
|
|
||||||
// message
|
// message
|
||||||
// Required: true
|
// Required: true
|
||||||
@@ -46,6 +52,10 @@ type Error struct {
|
|||||||
func (m *Error) Validate(formats strfmt.Registry) error {
|
func (m *Error) Validate(formats strfmt.Registry) error {
|
||||||
var res []error
|
var res []error
|
||||||
|
|
||||||
|
if err := m.validateDetailedMessage(formats); err != nil {
|
||||||
|
res = append(res, err)
|
||||||
|
}
|
||||||
|
|
||||||
if err := m.validateMessage(formats); err != nil {
|
if err := m.validateMessage(formats); err != nil {
|
||||||
res = append(res, err)
|
res = append(res, err)
|
||||||
}
|
}
|
||||||
@@ -56,6 +66,15 @@ func (m *Error) Validate(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Error) validateDetailedMessage(formats strfmt.Registry) error {
|
||||||
|
|
||||||
|
if err := validate.Required("detailedMessage", "body", m.DetailedMessage); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (m *Error) validateMessage(formats strfmt.Registry) error {
|
func (m *Error) validateMessage(formats strfmt.Registry) error {
|
||||||
|
|
||||||
if err := validate.Required("message", "body", m.Message); err != nil {
|
if err := validate.Required("message", "body", m.Message); err != nil {
|
||||||
@@ -65,6 +84,11 @@ func (m *Error) validateMessage(formats strfmt.Registry) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ContextValidate validates this error based on context it is used
|
||||||
|
func (m *Error) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// MarshalBinary interface implementation
|
// MarshalBinary interface implementation
|
||||||
func (m *Error) MarshalBinary() ([]byte, error) {
|
func (m *Error) MarshalBinary() ([]byte, error) {
|
||||||
if m == nil {
|
if m == nil {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user