Generate schemas dynamically from pieces provided by each object class
This way we benefit from:
* knowing which attributes are used/required by each object class and
subclass
* Having validation function definitions near the class going to use them
Change-Id: I8fd6773c51d19405a585977af4ed72cad2b21db1
diff --git a/src/osmo_gsm_tester/obj/ms_srs.py b/src/osmo_gsm_tester/obj/ms_srs.py
index cdc8d18..7d08b66 100644
--- a/src/osmo_gsm_tester/obj/ms_srs.py
+++ b/src/osmo_gsm_tester/obj/ms_srs.py
@@ -21,6 +21,7 @@
import pprint
from ..core import log, util, config, template, process, remote
+from ..core import schema
from .run_node import RunNode
from ..core.event_loop import MainLoop
from .ms import MS
@@ -28,6 +29,26 @@
def rf_type_valid(rf_type_str):
return rf_type_str in ('zmq', 'uhd', 'soapy', 'bladerf')
+def on_register_schemas():
+ resource_schema = {
+ 'remote_user': schema.STR,
+ 'addr': schema.IPV4,
+ 'rf_dev_type': schema.STR,
+ 'rf_dev_args': schema.STR,
+ 'num_carriers': schema.UINT,
+ 'additional_args': schema.STR,
+ 'airplane_t_on_ms': schema.INT,
+ 'airplane_t_off_ms': schema.INT,
+ 'tx_gain': schema.UINT,
+ 'rx_gain': schema.UINT,
+ }
+ schema.register_resource_schema('modem', resource_schema)
+
+ config_schema = {
+ 'enable_pcap': schema.BOOL_STR,
+ }
+ schema.register_config_schema('modem', config_schema)
+
#reference: srsLTE.git srslte_symbol_sz()
def num_prb2symbol_sz(num_prb):
if num_prb <= 6: