personalization: indicate default ParamSource per ConfigurableParameter
Add default_source class members pointing to ParamSource classes to all ConfigurableParameter subclasses. This is useful to automatically set up a default ParamSource for a given ConfigurableParameter subclass, during user interaction to produce a batch personalization. For example, if the user selects a Pin1 parameter, a calling program can implicitly set this to a RandomDigitSource, which will magically make it work the way that most users need. BTW, default_source and default_value can be combined to configure a matching ParamSource instance: my_source = MyParam.default_source.from_str( MyParam.default_value ) Change-Id: Ie58d13bce3fa1aa2547cf3cee918c2f5b30a8b32
This commit is contained in:
@@ -131,6 +131,7 @@ class ConfigurableParameter:
|
|||||||
max_len = None
|
max_len = None
|
||||||
allow_len = None # a list of specific lengths
|
allow_len = None # a list of specific lengths
|
||||||
default_value = None
|
default_value = None
|
||||||
|
default_source = None # a param_source.ParamSource subclass
|
||||||
|
|
||||||
def __init__(self, input_value=None):
|
def __init__(self, input_value=None):
|
||||||
self.input_value = input_value # the raw input value as given by caller
|
self.input_value = input_value # the raw input value as given by caller
|
||||||
@@ -346,6 +347,7 @@ class Iccid(DecimalParam):
|
|||||||
min_len = 18
|
min_len = 18
|
||||||
max_len = 20
|
max_len = 20
|
||||||
default_value = '0' * 18
|
default_value = '0' * 18
|
||||||
|
default_source = param_source.IncDigitSource
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def validate_val(cls, val):
|
def validate_val(cls, val):
|
||||||
@@ -379,6 +381,7 @@ class Imsi(DecimalParam):
|
|||||||
min_len = 6
|
min_len = 6
|
||||||
max_len = 15
|
max_len = 15
|
||||||
default_value = '00101' + ('0' * 10)
|
default_value = '00101' + ('0' * 10)
|
||||||
|
default_source = param_source.IncDigitSource
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def apply_val(cls, pes: ProfileElementSequence, val):
|
def apply_val(cls, pes: ProfileElementSequence, val):
|
||||||
@@ -411,6 +414,7 @@ class SdKey(BinaryParam):
|
|||||||
key_id = None
|
key_id = None
|
||||||
kvn = None
|
kvn = None
|
||||||
key_usage_qual = None
|
key_usage_qual = None
|
||||||
|
default_source = param_source.RandomHexDigitSource
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _apply_sd(cls, pe: ProfileElement, value):
|
def _apply_sd(cls, pe: ProfileElement, value):
|
||||||
@@ -567,6 +571,7 @@ class Puk(DecimalHexParam):
|
|||||||
rpad = 16
|
rpad = 16
|
||||||
keyReference = None
|
keyReference = None
|
||||||
default_value = '0' * allow_len
|
default_value = '0' * allow_len
|
||||||
|
default_source = param_source.RandomDigitSource
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def apply_val(cls, pes: ProfileElementSequence, val):
|
def apply_val(cls, pes: ProfileElementSequence, val):
|
||||||
@@ -604,6 +609,7 @@ class Pin(DecimalHexParam):
|
|||||||
min_len = 4
|
min_len = 4
|
||||||
max_len = 8
|
max_len = 8
|
||||||
default_value = '0' * max_len
|
default_value = '0' * max_len
|
||||||
|
default_source = param_source.RandomDigitSource
|
||||||
keyReference = None
|
keyReference = None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -715,6 +721,7 @@ class AlgorithmID(DecimalParam, AlgoConfig):
|
|||||||
algo_config_key = 'algorithmID'
|
algo_config_key = 'algorithmID'
|
||||||
allow_len = 1
|
allow_len = 1
|
||||||
default_value = 1 # Milenage
|
default_value = 1 # Milenage
|
||||||
|
default_source = param_source.ConstantSource
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def validate_val(cls, val):
|
def validate_val(cls, val):
|
||||||
@@ -733,6 +740,7 @@ class K(BinaryParam, AlgoConfig):
|
|||||||
algo_config_key = 'key'
|
algo_config_key = 'key'
|
||||||
allow_len = int(128/8) # length in bytes (from BinaryParam)
|
allow_len = int(128/8) # length in bytes (from BinaryParam)
|
||||||
default_value = '00' * allow_len
|
default_value = '00' * allow_len
|
||||||
|
default_source = param_source.RandomHexDigitSource
|
||||||
|
|
||||||
class Opc(K):
|
class Opc(K):
|
||||||
name = 'OPc'
|
name = 'OPc'
|
||||||
|
|||||||
Reference in New Issue
Block a user