62 lines
2.7 KiB
Python
62 lines
2.7 KiB
Python
from core.config import ConfigurableManager
|
|
from core.config import ConfigurableOptions
|
|
from core.config import Configuration
|
|
from core.emulator.enumerations import ConfigDataTypes
|
|
from core.emulator.enumerations import RegisterTlvs
|
|
from core.plugins.sdt import Sdt
|
|
|
|
|
|
class SessionConfig(ConfigurableManager, ConfigurableOptions):
|
|
"""
|
|
Provides session configuration.
|
|
"""
|
|
name = "session"
|
|
options = [
|
|
Configuration(_id="controlnet", _type=ConfigDataTypes.STRING, label="Control Network"),
|
|
Configuration(_id="controlnet0", _type=ConfigDataTypes.STRING, label="Control Network 0"),
|
|
Configuration(_id="controlnet1", _type=ConfigDataTypes.STRING, label="Control Network 1"),
|
|
Configuration(_id="controlnet2", _type=ConfigDataTypes.STRING, label="Control Network 2"),
|
|
Configuration(_id="controlnet3", _type=ConfigDataTypes.STRING, label="Control Network 3"),
|
|
Configuration(_id="controlnet_updown_script", _type=ConfigDataTypes.STRING, label="Control Network Script"),
|
|
Configuration(_id="enablerj45", _type=ConfigDataTypes.BOOL, default="1", options=["On", "Off"],
|
|
label="Enable RJ45s"),
|
|
Configuration(_id="preservedir", _type=ConfigDataTypes.BOOL, default="0", options=["On", "Off"],
|
|
label="Preserve session dir"),
|
|
Configuration(_id="enablesdt", _type=ConfigDataTypes.BOOL, default="0", options=["On", "Off"],
|
|
label="Enable SDT3D output"),
|
|
Configuration(_id="sdturl", _type=ConfigDataTypes.STRING, default=Sdt.DEFAULT_SDT_URL, label="SDT3D URL")
|
|
]
|
|
config_type = RegisterTlvs.UTILITY.value
|
|
|
|
def __init__(self):
|
|
super(SessionConfig, self).__init__()
|
|
self.set_configs(self.default_values())
|
|
|
|
def get_config(self, _id, node_id=ConfigurableManager._default_node,
|
|
config_type=ConfigurableManager._default_type, default=None):
|
|
value = super(SessionConfig, self).get_config(_id, node_id, config_type, default)
|
|
if value == "":
|
|
value = default
|
|
return value
|
|
|
|
def get_config_bool(self, name, default=None):
|
|
value = self.get_config(name)
|
|
if value is None:
|
|
return default
|
|
return value.lower() == "true"
|
|
|
|
def get_config_int(self, name, default=None):
|
|
value = self.get_config(name, default=default)
|
|
if value is not None:
|
|
value = int(value)
|
|
return value
|
|
|
|
|
|
class SessionMetaData(ConfigurableManager):
|
|
"""
|
|
Metadata is simply stored in a configs[] dict. Key=value pairs are
|
|
passed in from configure messages destined to the "metadata" object.
|
|
The data is not otherwise interpreted or processed.
|
|
"""
|
|
name = "metadata"
|
|
config_type = RegisterTlvs.UTILITY.value
|