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