Attributes
component_root module-attribute
component_root = get('FBM_RESEARCHER_COMPONENT_ROOT', None)
config module-attribute
config = initiate(root=component_root)
researcher_component module-attribute
researcher_component = ResearcherComponent()
Classes
ResearcherComponent
ResearcherComponent()
Bases: Component
Fed-BioMed Node Component Class
This class is used for creating and validating components by given component root directory
Source code in fedbiomed/common/config.py
def __init__(self):
"""Test"""
self._reference = '.fedbiomed'
Attributes
config_cls class-attribute
instance-attribute
config_cls = ResearcherConfig
Functions
initiate
initiate(root=None)
Creates or initiates existing component
Source code in fedbiomed/researcher/config.py
def initiate(self, root: Optional[str] = None) -> ResearcherConfig:
"""Creates or initiates existing component"""
config = super().initiate(root)
notebooks_path = os.path.join(config.root, NOTEBOOKS_FOLDER_NAME)
notebooks_share_path = os.path.join(SHARE_DIR, NOTEBOOKS_FOLDER_NAME)
docs_share_path = os.path.join(SHARE_DIR, DOCS_FOLDER_NAME)
if not os.path.isdir(notebooks_path):
shutil.copytree(notebooks_share_path, notebooks_path, symlinks=True)
shutil.copytree(
os.path.join(docs_share_path, TUTORIALS_FOLDER_NAME),
os.path.join(notebooks_path, TUTORIALS_FOLDER_NAME),
symlinks=True
)
return config
ResearcherConfig
ResearcherConfig(root)
Bases: Config
Parameters:
Name | Type | Description | Default |
---|---|---|---|
root | str | Root directory for the component | required |
Source code in fedbiomed/common/config.py
def __init__(
self, root: str
) -> None:
"""Initializes configuration
Args:
root: Root directory for the component
"""
self._cfg = configparser.ConfigParser()
self.load(root)
Attributes
COMPONENT_TYPE class-attribute
instance-attribute
COMPONENT_TYPE = 'RESEARCHER'
Functions
add_parameters
add_parameters()
Generate researcher config
Source code in fedbiomed/researcher/config.py
def add_parameters(self):
"""Generate researcher config"""
grpc_host = os.getenv('FBM_SERVER_HOST', 'localhost')
grpc_port = os.getenv('FBM_SERVER_PORT', '50051')
# Generate certificate for gRPC server
key_file, pem_file = generate_certificate(
root=self.root,
prefix=SERVER_certificate_prefix,
component_id=self._cfg['default']['id'],
subject={'CommonName': grpc_host}
)
self._cfg['server'] = {
'host': grpc_host,
'port': grpc_port,
}
self._cfg["certificate"] = {
"private_key": os.path.relpath(key_file, os.path.join(self.root, CONFIG_FOLDER_NAME)),
"public_key": os.path.relpath(pem_file, os.path.join(self.root, CONFIG_FOLDER_NAME))
}
self._cfg['security'] = {
'secagg_insecure_validation': os.getenv('FBM_SECURITY_SECAGG_INSECURE_VALIDATION', True)
}