547 def apply(self):
548 """Apply all overrides."""
549 from GaudiPython import InterfaceCast, gbl
550 from GaudiPython.Bindings import iProperty
551
552 if self.service_types or self.create_services or self.drop_services:
553 svcMgr = InterfaceCast(gbl.ISvcManager)(gbl.Gaudi.svcLocator())
554 for name, type_ in self.service_types.items():
555 log.info("Configuring %s under the name %s", type_, name)
556 svcMgr.declareSvcType(name, type_)
557 for name, type_ in self.create_services:
558
559 if svcMgr.addService(gbl.Gaudi.Utils.TypeNameString(f"{type_}/{name}")).isSuccess():
560 log.info("Created service %s/%s", type_, name)
561 else:
562 log.error("Failed to create service %s/%s", type_, name)
563 for name in self.drop_services:
564
565 if svcMgr.removeService(name).isSuccess():
566 log.info("Removed service %s", name)
567 else:
568 log.debug("Service %s not present, nothing to remove", name)
569
570 for key, value in self.properties.items():
571 component, _, prop = key.rpartition('.')
572 log.info("Overriding %s.%s = %s (from command line)", component, prop, value)
573 setattr(iProperty(component), prop, value)
574
575