From 8f2e8ff36fc3eb03b8cd28d5fc43be2dd69d6e76 Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Tue, 23 Nov 2010 20:53:38 +0200 Subject: [PATCH] http-well-known: merge into the document_webdav module Since both "well-known" urls are about webdav[1], we can safely assume that the webdav module is needed when well-known uris are used. The code is much similar, too. http://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml bzr revid: p_christ@hol.gr-20101123185338-az85yl7pbc9gf76z --- addons/document_webdav/__openerp__.py | 5 +- .../doc/well-known.rst | 0 .../redirect.py | 0 addons/document_webdav/webdav_server.py | 25 +++++++++- addons/http_well_known/__init__.py | 46 ------------------- addons/http_well_known/__openerp__.py | 44 ------------------ 6 files changed, 27 insertions(+), 93 deletions(-) rename addons/{http_well_known => document_webdav}/doc/well-known.rst (100%) rename addons/{http_well_known => document_webdav}/redirect.py (100%) delete mode 100644 addons/http_well_known/__init__.py delete mode 100644 addons/http_well_known/__openerp__.py diff --git a/addons/document_webdav/__openerp__.py b/addons/document_webdav/__openerp__.py index 6c1e24d1e96..0fd21a41a17 100644 --- a/addons/document_webdav/__openerp__.py +++ b/addons/document_webdav/__openerp__.py @@ -30,7 +30,7 @@ { "name" : "WebDAV server for Document Management", - "version" : "2.2", + "version" : "2.3", "author" : "OpenERP SA", "category" : "Generic Modules/Others", "website": "http://www.openerp.com", @@ -49,6 +49,9 @@ ; since the messages are routed to the python logging, with ; levels "debug" and "debug_rpc" respectively, you can leave ; these options on + + Also implements IETF RFC 5785 for services discovery on a http server, + which needs explicit configuration in openerp-server.conf, too. """, "depends" : ["base", "document"], "init_xml" : [], diff --git a/addons/http_well_known/doc/well-known.rst b/addons/document_webdav/doc/well-known.rst similarity index 100% rename from addons/http_well_known/doc/well-known.rst rename to addons/document_webdav/doc/well-known.rst diff --git a/addons/http_well_known/redirect.py b/addons/document_webdav/redirect.py similarity index 100% rename from addons/http_well_known/redirect.py rename to addons/document_webdav/redirect.py diff --git a/addons/document_webdav/webdav_server.py b/addons/document_webdav/webdav_server.py index 5810978a6d5..f2a230858bf 100644 --- a/addons/document_webdav/webdav_server.py +++ b/addons/document_webdav/webdav_server.py @@ -1,5 +1,5 @@ # -*- encoding: utf-8 -*- - +############################################################################9 # # Copyright P. Christeas 2008,2009 # Copyright OpenERP SA, 2010 (http://www.openerp.com ) @@ -14,7 +14,7 @@ # # This program is Free Software; you can redistribute it and/or # modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 +# as published by the Free Software Foundation; either version 3 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, @@ -43,6 +43,7 @@ import addons from DAV.errors import DAV_Error, DAV_Forbidden, DAV_NotFound from DAV.propfind import PROPFIND # from DAV.constants import DAV_VERSION_1, DAV_VERSION_2 +from redirect import RedirectHTTPHandler khtml_re = re.compile(r' KHTML/([0-9\.]+) ') @@ -453,6 +454,26 @@ except Exception, e: logger = netsvc.Logger() logger.notifyChannel('webdav', netsvc.LOG_ERROR, 'Cannot launch webdav: %s' % e) + +def init_well_known(): + reps = RedirectHTTPHandler.redirect_paths + + num_svcs = config.get_misc('http-well-known', 'num_services', '0') + + for nsv in range(1, int(num_svcs)+1): + uri = config.get_misc('http-well-known', 'service_%d' % nsv, False) + path = config.get_misc('http-well-known', 'path_%d' % nsv, False) + if not (uri and path): + continue + reps['/'+uri] = path + + if int(num_svcs): + if http_server.reg_http_service(HTTPDir('/.well-known', RedirectHTTPHandler)): + logging.getLogger("web-services").info("Registered HTTP redirect handler at /.well-known" ) + + +init_well_known() + #eof diff --git a/addons/http_well_known/__init__.py b/addons/http_well_known/__init__.py deleted file mode 100644 index 45c4efee2e1..00000000000 --- a/addons/http_well_known/__init__.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2010 OpenERP s.a. (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import logging -import tools -from service.websrv_lib import HTTPDir -from service.http_server import reg_http_service -from redirect import RedirectHTTPHandler - -def init_well_known(): - reps = RedirectHTTPHandler.redirect_paths - - num_svcs = tools.config.get_misc('http-well-known', 'num_services', '0') - - for nsv in range(1, int(num_svcs)+1): - uri = tools.config.get_misc('http-well-known', 'service_%d' % nsv, False) - path = tools.config.get_misc('http-well-known', 'path_%d' % nsv, False) - if not (uri and path): - continue - reps['/'+uri] = path - - if reg_http_service(HTTPDir('/.well-known', RedirectHTTPHandler)): - logging.getLogger("web-services").info("Registered HTTP redirect handler at /.well-known" ) - - -init_well_known() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/http_well_known/__openerp__.py b/addons/http_well_known/__openerp__.py deleted file mode 100644 index 090b9a5ee01..00000000000 --- a/addons/http_well_known/__openerp__.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2010 OpenERP s.a. (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - - -{ - "name" : "Publish well-known http URIs", - "version" : "0.1", - "depends" : [ "base", ], - 'description': """ - Implements IETF RFC 5785 for services discovery on a http server. - - May help some CalDAV clients bootstrap from the OpenERP server. - - Note that it needs explicit configuration in openerp-server.conf . -""", - "author" : "OpenERP SA", - 'category': 'Generic Modules/Others', - 'website': 'http://www.openerp.com', - "init_xml" : [ ], - "demo_xml" : [], - "update_xml" : [ ], - "installable" : True, - "active" : False, -} - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: