def crear_servicio(self): if self.estado_creacion != Agencia.CREACION_INICIADA: raise Exception('Se ha intentado crear servicio para agencia %s pero su estado de creación %s es distinto de %s.'%( self.id, Agencia.DICT_ESTADO_CREACION[self.estado_creacion], Agencia.DICT_ESTADO_CREACION[Agencia.CREACION_INICIADA] )) self.estado_creacion=Agencia.CREACION_EN_PROCESO self.save() password = User.objects.make_random_password() os.makedirs(self.get_ruta_instalacion()) os.chdir(self.get_ruta_instalacion()) self.__callScript(['git', 'init']) self.__callScript(['git', 'pull', settings.AMBIENTE.iamcast.agencia_git_url]) os.environ['DJANGO_SETTINGS_MODULE'] = "alternativa.settings" template = loader.get_template('iamcast/servicio/ambiente.py') context = Context({ 'agencia':self, 'password':password, 'admins': settings.AMBIENTE.admins, 'root_password': settings.AMBIENTE.db.root.password, }) ambiente_content = template.render(context) ambiente_file = open(self.get_ambiente_file_path(),'w') ambiente_file.write(ambiente_content) ambiente_file.close() self.__callScript(['./install.sh']) array_llamada=[ self.get_manage_script(), 'crear_super_usuario', '--username=%s'%self.user.username, '--first_name=%s'%self.user.first_name, '--last_name=%s'%self.user.last_name, '--email=%s'%self.user.email, '--password=%s'%self.user.password, ] self.__callScript(array_llamada) del os.environ['DJANGO_SETTINGS_MODULE'] asunto = ugettext(u'La Creación de su Agencia Finalizó Exitosamente') template = loader.get_template('iamcast/mail/exito_creacion_agencia.html') context = Context({'agencia':self, 'password':password, 'ambiente': settings.AMBIENTE}) html_content = template.render(context) msg = MailIamSoft(asunto,ugettext(u'El contenido de este email debe ser visualizado en formato HTML'),[self.user.email]) msg.set_html_body(html_content) msg.send() self.estado_creacion = Agencia.FINALIZADA_CON_EXITO self.activa = True self.save()