Hi Michael,
I am trying to share the Calendar of one Grommunio user,
to one or many other Grommunio users on same server.
Not by /web interface sharing, because I want the sync to be viewable from ActiveSync.
Here's my config file for vdirsyncer
[general]
status_path = "/root/.vdirsyncer/status/"
[pair my_calendars]
a = "bar"
b = "foo"
collections = ["from a", "from b"]
[storage bar]
type = "caldav"
auth = "guess"
url = "https://domain.example:443/dav/calendars/user@domain.example/Calendar/"
username = "user@domain.example"
password = "password"
auth_cert = ["/root/.config/vdirsyncer/server-bundle-test.pem"]
[storage foo]
type = "caldav"
auth = "guess"
url = "https://domain.example:443/dav/calendars/user2@domain.example/Calendar/"
username = "user2@domain.example"
password = "anotherpassword"
auth_cert = ["/root/.config/vdirsyncer/server-bundle-test.pem"]
In order to get the SSL verification working, using letsencrypt, the current certificate has to be converted to new format, everytime the cert gets updated, using following
openssl x509 -text -noout -in "~/path/to/your/cert/foo.pem" > /root/.config/vdirsyncer/server-bundle-test.pem
Now that the SSL is taken care of, this is what the logs shows:
# vdirsyncer discover my_calendars
Discovering collections for pair my_calendars
warning: Failed to discover collections for bar, use `-vdebug` to see the full traceback.
warning: Failed to discover collections for foo, use `-vdebug` to see the full traceback.
error: Unknown error occured: tuple index out of range
error: Use `-vdebug` to see the full traceback.
error: 1 out of 1 tasks failed.
And here's the -debug full traceback:
# vdirsyncer -vdebug discover my_calendars
debug: Using 1 maximal workers.
Discovering collections for pair my_calendars
debug: PROPFIND https://domain.example:443/dav/calendars/user@domain.example/Calendar/
debug: {'User-Agent': 'vdirsyncer/0.16.7', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '1'}
debug: b'\n <d:propfind xmlns:d="DAV:">\n <d:prop>\n <d:resourcetype />\n </d:prop>\n </d:propfind>\n '
debug: Sending request...
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 204, in _print_collections
debug: discovered = get_discovered()
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 133, in get_self
debug: return self._discovered
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/utils.py", line 170, in __get__
debug: obj.__dict__[self.__name__] = result = self.fget(obj)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 142, in _discovered
debug: return handle_storage_init_error(self._cls, self._config)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 138, in _discovered
debug: discovered = list(self._cls.discover(**self._config))
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 267, in discover
debug: for c in self.find_collections():
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 220, in find_collections
debug: rv = list(self._find_collections_impl(''))
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 250, in _find_collections_impl
debug: data=self._collection_xml)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 390, in request
debug: return http.request(method, url, session=self._session, **more)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/http.py", line 144, in request
debug: r = func(method, url, **kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 530, in request
debug: resp = self.send(prep, **send_kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 643, in send
debug: r = adapter.send(request, **kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 416, in send
debug: self.cert_verify(conn, request.url, verify, cert)
debug: File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 244, in cert_verify
debug: conn.key_file = cert[1]
warning: Failed to discover collections for bar, use `-vdebug` to see the full traceback.
debug: PROPFIND https://domain.example:443/dav/calendars/user2@domain.example/Calendar/
debug: {'User-Agent': 'vdirsyncer/0.16.7', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '1'}
debug: b'\n <d:propfind xmlns:d="DAV:">\n <d:prop>\n <d:resourcetype />\n </d:prop>\n </d:propfind>\n '
debug: Sending request...
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 204, in _print_collections
debug: discovered = get_discovered()
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 133, in get_self
debug: return self._discovered
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/utils.py", line 170, in __get__
debug: obj.__dict__[self.__name__] = result = self.fget(obj)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 142, in _discovered
debug: return handle_storage_init_error(self._cls, self._config)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 138, in _discovered
debug: discovered = list(self._cls.discover(**self._config))
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 267, in discover
debug: for c in self.find_collections():
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 220, in find_collections
debug: rv = list(self._find_collections_impl(''))
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 250, in _find_collections_impl
debug: data=self._collection_xml)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 390, in request
debug: return http.request(method, url, session=self._session, **more)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/http.py", line 144, in request
debug: r = func(method, url, **kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 530, in request
debug: resp = self.send(prep, **send_kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 643, in send
debug: r = adapter.send(request, **kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 416, in send
debug: self.cert_verify(conn, request.url, verify, cert)
debug: File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 244, in cert_verify
debug: conn.key_file = cert[1]
warning: Failed to discover collections for foo, use `-vdebug` to see the full traceback.
debug: PROPFIND https://domain.example:443/dav/calendars/user@domain.example/Calendar/
debug: {'User-Agent': 'vdirsyncer/0.16.7', 'Content-Type': 'application/xml; charset=UTF-8', 'Depth': '1'}
debug: b'\n <d:propfind xmlns:d="DAV:">\n <d:prop>\n <d:resourcetype />\n </d:prop>\n </d:propfind>\n '
debug: Sending request...
error: Unknown error occured: tuple index out of range
error: Use `-vdebug` to see the full traceback.
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/utils.py", line 341, in _worker
debug: func(wq=self)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/tasks.py", line 82, in discover_collections
debug: rv = collections_for_pair(pair=pair, **kwargs)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 81, in collections_for_pair
debug: _handle_collection_not_found=handle_collection_not_found
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 161, in expand_collections
debug: collections = get_a_discovered()
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 133, in get_self
debug: return self._discovered
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/utils.py", line 170, in __get__
debug: obj.__dict__[self.__name__] = result = self.fget(obj)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 142, in _discovered
debug: return handle_storage_init_error(self._cls, self._config)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/cli/discover.py", line 138, in _discovered
debug: discovered = list(self._cls.discover(**self._config))
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 267, in discover
debug: for c in self.find_collections():
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 220, in find_collections
debug: rv = list(self._find_collections_impl(''))
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 250, in _find_collections_impl
debug: data=self._collection_xml)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/storage/dav.py", line 390, in request
debug: return http.request(method, url, session=self._session, **more)
debug: File "/usr/lib/python3.6/site-packages/vdirsyncer/http.py", line 144, in request
debug: r = func(method, url, **kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 530, in request
debug: resp = self.send(prep, **send_kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/sessions.py", line 643, in send
debug: r = adapter.send(request, **kwargs)
debug: File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 416, in send
debug: self.cert_verify(conn, request.url, verify, cert)
debug: File "/usr/lib/python3.6/site-packages/requests/adapters.py", line 244, in cert_verify
debug: conn.key_file = cert[1]
error: 1 out of 1 tasks failed.
Basically all that debug info is saying the vdirsyncer is not able to fetch any data, using the /cal/calendars/user@domain/Calendar/ path, this is why it is saying tuple index out of range
This is the vdirsyncer package from OpenSuse repo. I will try the latest version from github tonight. And update you on progress on here.
Thank you for taking time to look at this thread. Any suggestions, feedback is appreciated.