Hello. This message was cross-posted to openchange-dev (minor edits for
clarity/relevance).
I am having some difficulty getting ocsmanager working correctly. It
appears that autodiscover works as expected, however, free/busy lookups
fail using the test instructions in the README.txt. I've not bothered
with an Outlook 2010 client yet. This has been on the back burner for a
long time in the hopes that it would magically work with some future
release. I've stepped through every bit of this that I know how and am
looking for some direction in debugging. At first glance, it seems like
it might be related to the warning message below (when starting paster):
Dec 01 21:48:38 Server2 systemd[1]: Started OpenChange OCSManager.
Dec 01 21:48:47 Server2 paster[357]: Dec 01 21:48:47 samba [357]:
[ERROR] [so-product-registry] failed to load product Appointments
required by SOGoBackend.
Dec 01 21:48:47 Server2 paster[357]: Dec 01 21:48:47 samba [357]:
[so-product-registry] could not load product: SOGoBackend
Dec 01 21:48:47 Server2 paster[357]: Dec 01 21:48:47 samba [357]:
<0x0x55bb2ea64da0[SOGoCache]> Cache cleanup interval set every
300.000000 seconds
Dec 01 21:48:47 Server2 paster[357]: Dec 01 21:48:47 samba [357]:
<0x0x55bb2ea64da0[SOGoCache]> Using host(s) '127.0.0.1' as server(s)
I should note that this is similar to an old SOGo bug due to using a
newer GNUStep version (which has since been fixed). My current versions,
in case it is related, are:
gnustep-base 1.24.8-2
gnustep-make 2.6.7-1
Using the example fb.xml listed in the README.txt for ocsmanager
(correcting with valid email addresses) the first error message in
traceback is:
interface=Wsdl11(), in_protocol=Soap11(), out_protocol=Soap11())
Module spyne.interface.wsdl.wsdl11:149 in __init__
super(Wsdl11, self).__init__(interface)
Module spyne.interface.xml_schema._base:111 in __init__
pref = self.interface.prefmap[self.interface.app.tns]
AttributeError: 'NoneType' object has no attribute 'prefmap'
Keep in mind I'm working from CLI only and grabbing what I think is
relevant. I'm unable to access the web-based debug info as it is
prompting for authentication, and nothing seems to work (though I'm able
to get it to display some info if I keep failing auth).
I expect that "NoneType" is something empty that shouldn't be. If so,
could that be related to the messages displayed when starting paster?
I'm expecting so, but asking anyway. I've seen these types of errors
from a few different sources, but no resolution as of yet. Same file
gives plausible results with Zentyal 4.2. I'd love to be the person who
posts the solution, however, I feel I am well outside of my depth here.
FYI, I'm also way outside of a standard config. I'm running Arch Linux
with Samba-4.3.1, Openchange-2.3 with SizedXid/ndr additions (needed by
sogo-openchange 2.3.3a) and the server_id_str_buf changes in the
openchange bug #407 (zentyal #176). This particular problem dates back
quite a while. Problem exists with git as well (with 407 taken care of).
I've gone through the python deps pretty thoroughly following my
previous inquiry on the openchange-dev list, and think I'm pretty much
on par there, but obviously no guarantees. I'm really hoping that this
will result in a facepalm, as I am so close.
My oscmanager.ini (obfuscated where necessary):
#
# ocsmanager - Pylons configuration
#
# The %(here)s variable will be replaced with the parent directory of
this file
#
[DEFAULT]
debug = true
email_to = postmas...@domain.tld
smtp_server = localhost
error_email_from = postmas...@domain.tld
[main]
auth = ldap
mapistore_root = /var/lib/samba/private
mapistore_data = /var/lib/samba/private/mapistore
debug = yes
[auth:ldap]
host = ldap://server.internal.domain.tld
port = 389
bind_dn = CN=unprivelegeduser,CN=Users,DC=internal,DC=domain,DC=tld
bind_pw = Zg0m8riwtChrlIJMbMM1vdUg1xZaaK17AYkH0LkOMB2wPzDVGym2vkONqVFeFlC
basedn = CN=Users,DC=internal,DC=domain,DC=tld
#filter = (cn=%s)
#attrs = userPassword, x-isActive
[server:main]
use = egg:Paste#http
host = server.internal.domain.tld
port = 5000
protocol_version = HTTP/1.1
[app:main]
use = egg:ocsmanager
full_stack = true
static_files = true
cache_dir = %(here)s/data
beaker.session.key = ocsmanager
beaker.session.secret = SDyKK3dKyDgW0mlpqttTMGU1f
app_instance_uuid = {ee533ebc-f266-49d1-ae10-d017ee6aa98c}
NTLMAUTHHANDLER_WORKDIR = /var/cache/ntlmauthhandler
SAMBA_HOST = server.internal.domain.tld
[rpcproxy:ldap]
host = server.internal.domain.tld
port = 389
basedn = CN=Users,DC=internal,DC=domain,DC=tld
# WARNING: *THE LINE BELOW MUST BE UNCOMMENTED ON A PRODUCTION ENVIRONMENT*
# Debug mode will enable the interactive debugging tool, allowing ANYONE to
# execute malicious code after an exception is raised.
set debug = false
[autodiscover]
# The client address that is not in these networks have RPC/Proxy
# prioritaised. It only works for Outlook 2010 or higher. Delimiter: ,
# internal_networks = 0.0.0.0/0
[autodiscover:rpcproxy]
# Enabled RPC/Proxy or not
enabled = true
# We assume the autodiscover host and the EWS (Free/Busy) are in the
same host
external_hostname = mail.domain.tld
# Require SSL to logon. Default value is false
ssl = true
[outofoffice]
# Set the backend.
# Possible backends: file, managesieve
# file makes sieve and OCSManager lives in the same host
# managesieve indicates the server to put/get the sieve script
backend = file
[outofoffice:file]
# Path of the sieve script for the user
# Expansion variables (example user.n...@example.com):
# $domain = example.com
# $user = user.name
# $fulluser = user.n...@example.com
sieve_script_path = /var/vmail/$user/sieve/sieve-script
# If the sieve script directory hierarchy does not exist, it will be created
sieve_script_path_mkdir = true
[outofoffice:managesieve]
# It requires to have a master password to get into every account
# server = 127.0.0.1
# SSL on/off
# ssl = true
# Master password
# secret = secret
# Logging configuration
[loggers]
keys = root
[handlers]
keys = console
[formatters]
keys = generic
[logger_root]
level = INFO
handlers = console
[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic
[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s] [%(threadName)s]
%(message)s
I hope that is enough information to at least point to a likely suspect.
Hopefully we can get it resolved for others as well.
Thanks in advance for any pointers.
--DJ Lucas
--
users@sogo.nu
https://inverse.ca/sogo/lists