def load_service_mconfig(self, service_name: str) -> Any: mconfig = self.load_mconfig() if service_name not in mconfig.configs_by_key: raise LoadConfigError( "Service ({}) missing in mconfig".format(service_name), ) service_mconfig = mconfig.configs_by_key[service_name] return unpack_mconfig_any(service_mconfig)
def load_service_mconfig(self, service_name: str) -> Any: offset_mconfig = self.load_mconfig() if service_name not in offset_mconfig.configs.configs_by_key: raise LoadConfigError( 'Service {} missing in mconfig'.format(service_name), ) service_mconfig = offset_mconfig.configs.configs_by_key[service_name] return unpack_mconfig_any(service_mconfig)
def test_unpack_mconfig_directoryd(self): directoryd_mconfig = mconfigs_pb2.DirectoryD(log_level=5, ) magmad_any = Any( type_url='type.googleapis.com/magma.mconfig.DirectoryD', value=directoryd_mconfig.SerializeToString(), ) actual = mconfigs.unpack_mconfig_any(magmad_any, mconfigs_pb2.DirectoryD()) self.assertEqual(directoryd_mconfig, actual)
def get_gateway_service_mconfigs(services: List[str]) -> Dict[str, Any]: """ Get the managed configurations of some gateway services. Args: services: List of service names to fetch configs for Returns: service mconfigs keyed by name """ ret = {} magmad_stub = MagmadStub(get_rpc_channel('magmad')) stub_response = magmad_stub.GetConfigs(Void()) for srv in services: ret[srv] = unpack_mconfig_any(stub_response.configs_by_key[srv]) return ret
def load_shared_mconfig( self, shared_mconfig_struct: mconfigs_pb2.SharedMconfig, ) -> mconfigs_pb2.SharedMconfig: """Documented in base class. """ mconfig = self.load_mconfig() service_mconfig = mconfig.configs_by_key.get(SHARED_MCONFIG) if service_mconfig is None: logging.warning( "Shared Mconfig is missing in " "mconfig.configs_by_key. Returning configs unchanged.", ) return shared_mconfig_struct return unpack_mconfig_any(service_mconfig, shared_mconfig_struct)
def test_unpack_mconfig_any(self): magmad_mconfig = mconfigs_pb2.MagmaD( checkin_interval=10, checkin_timeout=5, autoupgrade_enabled=True, autoupgrade_poll_interval=300, package_version='1.0.0-0', images=[], tier_id='default', feature_flags={'flag1': False}, ) magmad_any = Any( type_url='type.googleapis.com/magma.mconfig.MagmaD', value=magmad_mconfig.SerializeToString(), ) actual = mconfigs.unpack_mconfig_any(magmad_any, mconfigs_pb2.MagmaD()) self.assertEqual(magmad_mconfig, actual)