7
7
8
8
import middlewared .sqlalchemy as sa
9
9
10
- from middlewared .schema import accepts , Bool , Dict , Int , List , Patch , Password , returns , Str
11
- from middlewared .service import ConfigService , private , no_auth_required
12
- from middlewared .validators import Range
10
+ from middlewared .api import api_method
11
+ from middlewared .api .current import (
12
+ SystemAdvancedEntry , SystemAdvancedLoginBannerArgs , SystemAdvancedLoginBannerResult ,
13
+ SystemAdvancedSEDGlobalPasswordArgs , SystemAdvancedSEDGlobalPasswordResult ,
14
+ SystemAdvancedSEDGlobalPasswordIsSetArgs , SystemAdvancedSEDGlobalPasswordIsSetResult , SystemAdvancedUpdateArgs ,
15
+ SystemAdvancedUpdateResult
16
+ )
17
+ from middlewared .service import ConfigService , private
13
18
from middlewared .utils import run
14
19
from middlewared .utils .service .settings import SettingsHelper
15
20
@@ -59,40 +64,7 @@ class Config:
59
64
namespace = 'system.advanced'
60
65
cli_namespace = 'system.advanced'
61
66
role_prefix = 'SYSTEM_ADVANCED'
62
-
63
- ENTRY = Dict (
64
- 'system_advanced_entry' ,
65
- Bool ('advancedmode' , required = True ),
66
- Bool ('autotune' , required = True ),
67
- Bool ('kdump_enabled' , required = True ),
68
- Int ('boot_scrub' , validators = [Range (min_ = 1 )], required = True ),
69
- Bool ('consolemenu' , required = True ),
70
- Bool ('consolemsg' , required = True ),
71
- Bool ('debugkernel' , required = True ),
72
- Bool ('fqdn_syslog' , required = True ),
73
- Str ('motd' , required = True ),
74
- Str ('login_banner' , required = True , max_length = 4096 ),
75
- Bool ('powerdaemon' , required = True ),
76
- Bool ('serialconsole' , required = True ),
77
- Str ('serialport' , required = True ),
78
- Str ('anonstats_token' , required = True ),
79
- Str ('serialspeed' , enum = ['9600' , '19200' , '38400' , '57600' , '115200' ], required = True ),
80
- Int ('overprovision' , validators = [Range (min_ = 0 )], null = True , required = True ),
81
- Bool ('traceback' , required = True ),
82
- Bool ('uploadcrash' , required = True ),
83
- Bool ('anonstats' , required = True ),
84
- Str ('sed_user' , enum = ['USER' , 'MASTER' ], required = True ),
85
- Str ('sysloglevel' , enum = [
86
- 'F_EMERG' , 'F_ALERT' , 'F_CRIT' , 'F_ERR' , 'F_WARNING' , 'F_NOTICE' , 'F_INFO' , 'F_DEBUG' ,
87
- ], required = True ),
88
- Str ('syslogserver' ),
89
- Str ('syslog_transport' , enum = ['UDP' , 'TCP' , 'TLS' ], required = True ),
90
- Int ('syslog_tls_certificate' , null = True , required = True ),
91
- Bool ('syslog_audit' ),
92
- List ('isolated_gpu_pci_ids' , items = [Str ('pci_id' )], required = True ),
93
- Str ('kernel_extra_options' , required = True ),
94
- Int ('id' , required = True ),
95
- )
67
+ entry = SystemAdvancedEntry
96
68
97
69
@private
98
70
async def system_advanced_extend (self , data ):
@@ -180,32 +152,10 @@ async def _validate_kernel_extra_options(self, verrors, kernel_extra_options):
180
152
# foot-shooting
181
153
verrors .add ('kernel_extra_options' , f'Modifying { invalid_param !r} is not allowed' )
182
154
183
- @accepts (
184
- Patch (
185
- 'system_advanced_entry' , 'system_advanced_update' ,
186
- ('rm' , {'name' : 'id' }),
187
- ('rm' , {'name' : 'anonstats_token' }),
188
- ('rm' , {'name' : 'isolated_gpu_pci_ids' }),
189
- ('add' , Password ('sed_passwd' )),
190
- ('attr' , {'update' : True }),
191
- ),
192
- audit = 'System advanced update'
193
- )
155
+ @api_method (SystemAdvancedUpdateArgs , SystemAdvancedUpdateResult , audit = 'System advanced update' )
194
156
async def do_update (self , data ):
195
157
"""
196
158
Update System Advanced Service Configuration.
197
-
198
- `consolemenu` should be disabled if the menu at console is not desired. It will default to standard login
199
- in the console if disabled.
200
-
201
- `autotune` when enabled executes autotune script which attempts to optimize the system based on the installed
202
- hardware.
203
-
204
- When `syslogserver` is defined, logs of `sysloglevel` or above are sent. If syslog_audit is also set
205
- then the remote syslog server will also receive audit messages.
206
-
207
- `consolemsg` is a deprecated attribute and will be removed in further releases. Please, use `consolemsg`
208
- attribute in the `system.general` plugin.
209
159
"""
210
160
consolemsg = None
211
161
if 'consolemsg' in data :
@@ -291,15 +241,21 @@ async def do_update(self, data):
291
241
292
242
return await self .config ()
293
243
294
- @accepts (roles = ['SYSTEM_ADVANCED_READ' ])
295
- @returns (Bool ('sed_global_password_is_set' ))
244
+ @api_method (
245
+ SystemAdvancedSEDGlobalPasswordIsSetArgs ,
246
+ SystemAdvancedSEDGlobalPasswordIsSetResult ,
247
+ roles = ['SYSTEM_ADVANCED_READ' ]
248
+ )
296
249
async def sed_global_password_is_set (self ):
297
250
"""Returns a boolean identifying whether or not a global
298
251
SED password has been set"""
299
252
return bool (await self .sed_global_password ())
300
253
301
- @accepts (roles = ['SYSTEM_ADVANCED_READ' ])
302
- @returns (Password ('sed_global_password' ))
254
+ @api_method (
255
+ SystemAdvancedSEDGlobalPasswordArgs ,
256
+ SystemAdvancedSEDGlobalPasswordResult ,
257
+ roles = ['SYSTEM_ADVANCED_READ' ]
258
+ )
303
259
async def sed_global_password (self ):
304
260
"""Returns configured global SED password in clear-text if one
305
261
is configured, otherwise an empty string"""
@@ -308,9 +264,7 @@ async def sed_global_password(self):
308
264
))['sed_passwd' ]
309
265
return passwd if passwd else await self .middleware .call ('kmip.sed_global_password' )
310
266
311
- @no_auth_required
312
- @accepts ()
313
- @returns (Str ())
267
+ @api_method (SystemAdvancedLoginBannerArgs , SystemAdvancedLoginBannerResult , authentication_required = False )
314
268
def login_banner (self ):
315
269
"""Returns user set login banner"""
316
270
# NOTE: This endpoint doesn't require authentication because
0 commit comments