def create_pkg_with_custom_domain(request): create_pkg(request) name = 'www.upaas' domain = ApplicationDomain(application=request.instance.app, name=name, validated=True) domain.save() def cleanup(): domain.delete() request.addfinalizer(cleanup) request.instance.domain = domain
def clean_name(self): domain = self.cleaned_data['name'] if ApplicationDomain.objects(name=domain): raise forms.ValidationError(_( "Domain {domain} was already assigned").format(domain=domain)) if self.needs_validation: try: txt_records = query(domain, 'TXT') except NXDOMAIN: raise forms.ValidationError(_( "Domain {domain} does not exist").format(domain=domain)) except NoAnswer: raise forms.ValidationError(_( "No TXT record for domain {domain}").format(domain=domain)) except Exception as e: log.error(_("Exception during '{domain}' verification: " "{e}").format(domain=domain, e=e)) raise forms.ValidationError(_( "Unhandled exception during domain verification, please " "try again later")) else: for record in txt_records: if self.app.domain_validation_code in record.strings: self.domain_validated = True return domain raise forms.ValidationError(_( "No verification code in TXT record for {domain}").format( domain=domain)) else: return domain
def migrate_domains(self): done = 0 errors = 0 for app in OldApplication.objects(): new_app = Application.objects(id=app.id).first() for old_domain in app.old_domains: log.info("Migrating domain: %s / %s" % (app.name, old_domain.name)) domain = ApplicationDomain( application=new_app, name=old_domain.name, date_created=old_domain.date_created, validated=old_domain.validated, ) try: domain.save() except NotUniqueError: log.error("Domain %s already exists, it was NOT migrated") errors += 1 else: done += 1 app.update(unset__old_domains=True) if done or errors: log.info("%d domain(s) migrated, %d error(s)" % (done, errors))
def get_queryset(self): return ApplicationDomain.objects(application__in=self.request.user.applications)