Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 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)