Browse Source

[FIX] community review

pull/347/head
Holger Brunn 9 years ago
parent
commit
c88d40c262
  1. 2
      letsencrypt/controllers/__init__.py
  2. 7
      letsencrypt/controllers/main.py
  3. 11
      letsencrypt/models/letsencrypt.py

2
letsencrypt/controllers/__init__.py

@ -1,4 +1,4 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# © 2016 Therp BV <http://therp.nl> # © 2016 Therp BV <http://therp.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import letsencrypt
from . import main

7
letsencrypt/controllers/letsencrypt.py → letsencrypt/controllers/main.py

@ -11,10 +11,11 @@ class Letsencrypt(http.Controller):
@http.route('/.well-known/acme-challenge/<filename>', auth='none') @http.route('/.well-known/acme-challenge/<filename>', auth='none')
def acme_challenge(self, filename): def acme_challenge(self, filename):
try: try:
return file_open(
os.path.join('letsencrypt', 'static', 'acme-challenge',
with file(
os.path.join(request.env['letsencrypt'].get_challenge_dir(),
filename) filename)
).read()
) as challenge:
return challenge.read()
except IOError: except IOError:
pass pass
return request.not_found() return request.not_found()

11
letsencrypt/models/letsencrypt.py

@ -24,6 +24,10 @@ class Letsencrypt(models.AbstractModel):
def get_data_dir(self): def get_data_dir(self):
return os.path.join(_get_default_datadir(), 'letsencrypt') return os.path.join(_get_default_datadir(), 'letsencrypt')
@api.model
def get_challenge_dir(self):
return os.path.join(self.get_data_dir(), 'acme-challenge')
@api.model @api.model
def call_cmdline(self, cmdline, loglevel=logging.INFO, def call_cmdline(self, cmdline, loglevel=logging.INFO,
raise_on_result=True): raise_on_result=True):
@ -125,12 +129,7 @@ class Letsencrypt(models.AbstractModel):
self.validate_domain(domain) self.validate_domain(domain)
account_key = self.generate_account_key() account_key = self.generate_account_key()
csr = self.generate_csr(domain) csr = self.generate_csr(domain)
manifest, manifest_path = file_open(
'letsencrypt/__openerp__.py', pathinfo=True)
manifest.close()
acme_challenge = os.path.join(
os.path.dirname(manifest_path),
'static', 'acme-challenge')
acme_challenge = self.get_challenge_dir()
if not os.path.isdir(acme_challenge): if not os.path.isdir(acme_challenge):
os.makedirs(acme_challenge) os.makedirs(acme_challenge)
if self.env.context.get('letsencrypt_dry_run'): if self.env.context.get('letsencrypt_dry_run'):

Loading…
Cancel
Save