예제 #1
0
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
예제 #2
0
 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
예제 #3
0
 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))
예제 #4
0
 def get_queryset(self):
     return ApplicationDomain.objects(application__in=self.request.user.applications)