class ActivacionAgenteService(object): """Este servicio regenera y recarga los archivos de configuracion para los agentes""" def __init__(self): self.sip_config_creator = SipConfigCreator() self.reload_asterisk_config = AsteriskConfigReloader() self.asterisk_database = AgenteFamily() def _generar_y_recargar_configuracion_asterisk(self, regenerar_families=True, agente=None, preservar_status=False): proceso_ok = True mensaje_error = "" try: self.sip_config_creator.create_config_sip() except Exception as e: msg = _("Error {0}: ActivacionAgenteService: error al ".format(e) + "intentar create_config_sip()") logger.exception(msg) proceso_ok = False mensaje_error += _("Hubo un inconveniente al crear el archivo de " "configuracion del config sip de Asterisk. ") if not proceso_ok: raise (RestablecerConfigSipError(mensaje_error)) else: self.reload_asterisk_config.reload_asterisk() if regenerar_families: if agente is None: self.asterisk_database.regenerar_families() else: self.asterisk_database.regenerar_family( agente, preservar_status=preservar_status) def activar(self, regenerar_families=True): self._generar_y_recargar_configuracion_asterisk( regenerar_families=regenerar_families) def activar_agente(self, agente, preservar_status=False): self._generar_y_recargar_configuracion_asterisk( regenerar_families=True, agente=agente, preservar_status=preservar_status)
def get(self, request, *args, **kwargs): agente = AgenteProfile.objects.get(pk=self.kwargs['pk_agente']) agente.activar() agente_family = AgenteFamily() agente_family.regenerar_family(agente) return HttpResponseRedirect(reverse('agente_list', kwargs={"page": 1}))