Find group membership of users on client side
I've set up a group consisting of two members. <group> <uid>testGroup</uid> <password>testGroup</password> <name>Test Group</name> <members> <member type="users">cdaboo</member> <member type="users">sagen</member> </members> <guid>734BB9B0</guid> </group> On the client, I need to know which groups user 'cdaboo' belongs to? I tried 'allprop' for '/principals/users/cdaboo/' but it did not return any group. Please provide pointers. Regards,
Hi Gaurav, --On December 5, 2014 at 11:51:11 AM -0800 Gaurav Jain <monkeyfdude@gmail.com> wrote:
I've set up a group consisting of two members.
<group> <uid>testGroup</uid> <password>testGroup</password> <name>Test Group</name> <members> <member type="users">cdaboo</member> <member type="users">sagen</member> </members> <guid>734BB9B0</guid> </group>
On the client, I need to know which groups user 'cdaboo' belongs to?
I tried 'allprop' for '/principals/users/cdaboo/' but it did not return any group.
Pull up /principals/users/xxxx/ in a web browser. You should see a DAV:membership property listing the groups that principal is a member of. Note that "allprop" does not return all properties! Some properties are explicitly defined to not appear in "allprop". -- Cyrus Daboo
I did try that: For http://localhost:8008/principals/groups/group01/ Group members: -> (users)cdaboo - Cyrus Daboo <http://localhost:8008/principals/__uids__/cdaboo/> -> (users)sagen - Morgen Sagen <http://localhost:8008/principals/__uids__/sagen/> For http://localhost:8008/principals/users/cdaboo/ Group members: '() Group memberships: '() I only specified 'members' in a 'group'. Do I also need to specify 'memberships' for a 'user'? Could you also please point me to any doc around this? Thanks again! On Fri, Dec 5, 2014 at 12:10 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 11:51:11 AM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
I've set up a group consisting of two members.
<group> <uid>testGroup</uid> <password>testGroup</password> <name>Test Group</name> <members> <member type="users">cdaboo</member> <member type="users">sagen</member> </members> <guid>734BB9B0</guid> </group>
On the client, I need to know which groups user 'cdaboo' belongs to?
I tried 'allprop' for '/principals/users/cdaboo/' but it did not return any group.
Pull up /principals/users/xxxx/ in a web browser. You should see a DAV:membership property listing the groups that principal is a member of. Note that "allprop" does not return all properties! Some properties are explicitly defined to not appear in "allprop".
-- Cyrus Daboo
Hi, To check your accounts.xml configuration, probably the best documentation is: http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/auth/accoun... <http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/auth/accounts-test.xml> and http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/auth/accoun... <http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/auth/accounts.dtd> -dre
On Dec 5, 2014, at 12:15 PM, Gaurav Jain <monkeyfdude@gmail.com> wrote:
I did try that:
For http://localhost:8008/principals/groups/group01/ <http://localhost:8008/principals/groups/group01/>
Group members: -> (users)cdaboo - Cyrus Daboo <http://localhost:8008/principals/__uids__/cdaboo/> -> (users)sagen - Morgen Sagen <http://localhost:8008/principals/__uids__/sagen/>
For http://localhost:8008/principals/users/cdaboo/ <http://localhost:8008/principals/users/cdaboo/>
Group members: '()
Group memberships: '()
I only specified 'members' in a 'group'.
Do I also need to specify 'memberships' for a 'user'?
Could you also please point me to any doc around this?
Thanks again!
On Fri, Dec 5, 2014 at 12:10 PM, Cyrus Daboo <cdaboo@apple.com <mailto:cdaboo@apple.com>> wrote: Hi Gaurav,
--On December 5, 2014 at 11:51:11 AM -0800 Gaurav Jain <monkeyfdude@gmail.com <mailto:monkeyfdude@gmail.com>> wrote:
I've set up a group consisting of two members.
<group> <uid>testGroup</uid> <password>testGroup</password> <name>Test Group</name> <members> <member type="users">cdaboo</member> <member type="users">sagen</member> </members> <guid>734BB9B0</guid> </group>
On the client, I need to know which groups user 'cdaboo' belongs to?
I tried 'allprop' for '/principals/users/cdaboo/' but it did not return any group.
Pull up /principals/users/xxxx/ in a web browser. You should see a DAV:membership property listing the groups that principal is a member of. Note that "allprop" does not return all properties! Some properties are explicitly defined to not appear in "allprop".
-- Cyrus Daboo
_______________________________________________ calendarserver-users mailing list calendarserver-users@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/calendarserver-users
Thanks. Referring to dtd, I need to add <user> <uid>gauravj</uid> <guid>gauravj</guid> <email-address>gauravj@example.com</email-address> <password>test</password> <name>Gaurav Jain</name> <first-name>Gaurav</first-name> <last-name>Jain</last-name> <members> <member type="groups">group01</member> </members> </user> That means just creating a group with members is not sufficient. Needed to explicitly specify which * which members a group has * which groups a user belong to. I hope my understanding is correct. Regards, On Fri, Dec 5, 2014 at 12:22 PM, Andre LaBranche <dre@apple.com> wrote:
Hi,
To check your accounts.xml configuration, probably the best documentation is:
http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/auth/accoun...
and
http://trac.calendarserver.org/browser/CalendarServer/trunk/conf/auth/accoun...
-dre
On Dec 5, 2014, at 12:15 PM, Gaurav Jain <monkeyfdude@gmail.com> wrote:
I did try that:
For http://localhost:8008/principals/groups/group01/
Group members: -> (users)cdaboo - Cyrus Daboo <http://localhost:8008/principals/__uids__/cdaboo/> -> (users)sagen - Morgen Sagen <http://localhost:8008/principals/__uids__/sagen/>
For http://localhost:8008/principals/users/cdaboo/
Group members: '()
Group memberships: '()
I only specified 'members' in a 'group'.
Do I also need to specify 'memberships' for a 'user'?
Could you also please point me to any doc around this?
Thanks again!
On Fri, Dec 5, 2014 at 12:10 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 11:51:11 AM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
I've set up a group consisting of two members.
<group> <uid>testGroup</uid> <password>testGroup</password> <name>Test Group</name> <members> <member type="users">cdaboo</member> <member type="users">sagen</member> </members> <guid>734BB9B0</guid> </group>
On the client, I need to know which groups user 'cdaboo' belongs to?
I tried 'allprop' for '/principals/users/cdaboo/' but it did not return any group.
Pull up /principals/users/xxxx/ in a web browser. You should see a DAV:membership property listing the groups that principal is a member of. Note that "allprop" does not return all properties! Some properties are explicitly defined to not appear in "allprop".
-- Cyrus Daboo
_______________________________________________ calendarserver-users mailing list calendarserver-users@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/calendarserver-users
Hi Gaurav, --On December 5, 2014 at 12:28:19 PM -0800 Gaurav Jain <monkeyfdude@gmail.com> wrote:
That means just creating a group with members is not sufficient. Needed to explicitly specify which
* which members a group has * which groups a user belong to.
I hope my understanding is correct.
No that is wrong. You only need to specify group membership in the group records. What version of the server are you using right now? Can you attach the entire accounts.xml (block out any real passwords)? -- Cyrus Daboo
svn info /Users/gauravjain/development/calendar/CalendarServer-5.2.2/conf/auth/accounts-test.xml Path: /Users/gauravjain/development/calendar/CalendarServer-5.2.2/conf/auth/accounts-test.xml Name: accounts-test.xml URL: https://svn.calendarserver.org/repository/calendarserver/CalendarServer/tags... Repository Root: https://svn.calendarserver.org/repository/calendarserver Repository UUID: e27351fd-9f3e-4f54-a53b-843176b1656c Revision: 14096 Node Kind: file Schedule: normal Last Changed Author: wsanchez@apple.com Last Changed Rev: 12267 Last Changed Date: 2014-01-08 13:44:52 -0800 (Wed, 08 Jan 2014) Text Last Updated: 2014-10-21 14:50:24 -0700 (Tue, 21 Oct 2014) Checksum: 8a080b6a50c71cb08d80a5fda62144b6b9f8beac Relevant Group : 'group01' Relevant User : 'cdaboo' ************************************************************************ <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (c) 2006-2014 Apple Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <!DOCTYPE accounts SYSTEM "accounts.dtd"> <accounts realm="Test Realm"> <user> <uid>admin</uid> <guid>admin</guid> <password>admin</password> <name>Super User</name> <first-name>Super</first-name> <last-name>User</last-name> </user> <user> <uid>apprentice</uid> <guid>apprentice</guid> <password>apprentice</password> <name>Apprentice Super User</name> <first-name>Apprentice</first-name> <last-name>Super User</last-name> </user> <user> <uid>wsanchez</uid> <guid>wsanchez</guid> <email-address>wsanchez@example.com</email-address> <password>test</password> <name>Wilfredo Sanchez Vega</name> <first-name>Wilfredo</first-name> <last-name>Sanchez Vega</last-name> </user> <user> <uid>cdaboo</uid> <guid>cdaboo</guid> <email-address>cdaboo@example.com</email-address> <password>test</password> <name>Cyrus Daboo</name> <first-name>Cyrus</first-name> <last-name>Daboo</last-name> <members> <member type="groups">group01</member> </members> </user> <user> <uid>sagen</uid> <guid>sagen</guid> <email-address>sagen@example.com</email-address> <password>test</password> <name>Morgen Sagen</name> <first-name>Morgen</first-name> <last-name>Sagen</last-name> </user> <user> <uid>dre</uid> <guid>andre</guid> <email-address>dre@example.com</email-address> <password>test</password> <name>Andre LaBranche</name> <first-name>Andre</first-name> <last-name>LaBranche</last-name> </user> <user> <uid>glyph</uid> <guid>glyph</guid> <email-address>glyph@example.com</email-address> <password>test</password> <name>Glyph Lefkowitz</name> <first-name>Glyph</first-name> <last-name>Lefkowitz</last-name> </user> <user> <uid>i18nuser</uid> <guid>i18nuser</guid> <email-address>i18nuser@example.com</email-address> <password>i18nuser</password> <name>まだ</name> <first-name>ま</first-name> <last-name>だ</last-name> </user> <user repeat="101"> <uid>user%02d</uid> <uid>User %02d</uid> <guid>user%02d</guid> <password>user%02d</password> <name>User %02d</name> <first-name>User</first-name> <last-name>%02d</last-name> <email-address>user%02d@example.com</email-address> </user> <user repeat="10"> <uid>public%02d</uid> <guid>public%02d</guid> <password>public%02d</password> <name>Public %02d</name> <first-name>Public</first-name> <last-name>%02d</last-name> </user> <group> <uid>group01</uid> <guid>group01</guid> <password>group01</password> <name>Group 01</name> <members> <member type="users">cdaboo</member> <member type="users">sagen</member> </members> </group> <group> <uid>group02</uid> <guid>group02</guid> <password>group02</password> <name>Group 02</name> <members> <member type="users">user06</member> <member type="users">user07</member> </members> </group> <group> <uid>group03</uid> <guid>group03</guid> <password>group03</password> <name>Group 03</name> <members> <member type="users">user08</member> <member type="users">user09</member> </members> </group> <group> <uid>group04</uid> <guid>group04</guid> <password>group04</password> <name>Group 04</name> <members> <member type="groups">group02</member> <member type="groups">group03</member> <member type="users">user10</member> </members> </group> <group> <!-- delegategroup --> <uid>group05</uid> <guid>group05</guid> <password>group05</password> <name>Group 05</name> <members> <member type="groups">group06</member> <member type="users">user20</member> </members> </group> <group> <!-- delegatesubgroup --> <uid>group06</uid> <guid>group06</guid> <password>group06</password> <name>Group 06</name> <members> <member type="users">user21</member> </members> </group> <group> <!-- readonlydelegategroup --> <uid>group07</uid> <guid>group07</guid> <password>group07</password> <name>Group 07</name> <members> <member type="users">user22</member> <member type="users">user23</member> <member type="users">user24</member> </members> </group> <group> <uid>disabledgroup</uid> <guid>disabledgroup</guid> <password>disabledgroup</password> <name>Disabled Group</name> <members> <member type="users">user01</member> </members> </group> </accounts> On Fri, Dec 5, 2014 at 12:30 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 12:28:19 PM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
That means just creating a group with members is not sufficient. Needed to
explicitly specify which
* which members a group has * which groups a user belong to.
I hope my understanding is correct.
No that is wrong. You only need to specify group membership in the group records.
What version of the server are you using right now? Can you attach the entire accounts.xml (block out any real passwords)?
-- Cyrus Daboo
Hi Gaurav, --On December 5, 2014 at 12:38:36 PM -0800 Gaurav Jain <monkeyfdude@gmail.com> wrote:
Relevant Group : 'group01' Relevant User : 'cdaboo'
Definitely remove the <members> element from the cdaboo user. Restart the server and look at cdaboo, sagen, user01 and user08 in a browser. -- Cyrus Daboo
Please see my output below. I did get memberships for 'user01' mentioned in group record 'disabledgroup' -----------------------------------user01 start---------------------------- http://localhost:8008/principals/users/user01/ Group members: '() Group memberships: -> (resources)resource01 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource01/calendar-proxy-write/> -> (resources)resource02 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource02/calendar-proxy-write/> -> (resources)resource03 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource03/calendar-proxy-write/> -> (resources)resource04 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource04/calendar-proxy-write/> -> (resources)resource05 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource05/calendar-proxy-write/> -> (resources)resource06 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource06/calendar-proxy-write/> -> (resources)resource07 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource07/calendar-proxy-write/> -> (resources)resource08 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource08/calendar-proxy-write/> -> (resources)resource09 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource09/calendar-proxy-write/> -> (resources)resource10 [calendar-proxy-write] <http://localhost:8008/principals/__uids__/resource10/calendar-proxy-write/> Read-write Proxy For: -> (resources)resource01 - Resource 01 <http://localhost:8008/principals/__uids__/resource01/> -> (resources)resource02 - Resource 02 <http://localhost:8008/principals/__uids__/resource02/> -> (resources)resource03 - Resource 03 <http://localhost:8008/principals/__uids__/resource03/> -> (resources)resource04 - Resource 04 <http://localhost:8008/principals/__uids__/resource04/> -> (resources)resource05 - Resource 05 <http://localhost:8008/principals/__uids__/resource05/> -> (resources)resource06 - Resource 06 <http://localhost:8008/principals/__uids__/resource06/> -> (resources)resource07 - Resource 07 <http://localhost:8008/principals/__uids__/resource07/> -> (resources)resource08 - Resource 08 <http://localhost:8008/principals/__uids__/resource08/> -> (resources)resource09 - Resource 09 <http://localhost:8008/principals/__uids__/resource09/> -> (resources)resource10 - Resource 10 <http://localhost:8008/principals/__uids__/resource10/> Read-only Proxy For: '() Calendar Homes: -> /calendars/__uids__/user01/ <http://localhost:8008/calendars/__uids__/user01/> Calendar user addresses: -> /principals/__uids__/user01/ <http://localhost:8008/principals/__uids__/user01/> -> /principals/users/User%2001/ <http://localhost:8008/principals/users/User%2001/> -> /principals/users/user01/ <http://localhost:8008/principals/users/user01/> -> mailto:user01@example.com <user01@example.com> -> urn:uuid:user01 Address Book homes: -> /addressbooks/__uids__/user01/ <http://localhost:8008/addressbooks/__uids__/user01/> -----------------------------------user01 end---------------------------- -----------------------------------cadboo start---------------------------- http://localhost:8008/principals/users/cdaboo/ Group members: '() Group memberships: '() Read-write Proxy For: '() Read-only Proxy For: '() Calendar Homes: -> /calendars/__uids__/cdaboo/ <http://localhost:8008/calendars/__uids__/cdaboo/> Calendar user addresses: -> /principals/__uids__/cdaboo/ <http://localhost:8008/principals/__uids__/cdaboo/> -> /principals/users/cdaboo/ <http://localhost:8008/principals/users/cdaboo/> -> mailto:cdaboo@example.com <cdaboo@example.com> -> urn:uuid:cdaboo Address Book homes: -> /addressbooks/__uids__/cdaboo/ <http://localhost:8008/addressbooks/__uids__/cdaboo/> -----------------------------------cadboo end---------------------------- -----------------------------------sagen start---------------------------- http://localhost:8008/principals/users/sagen/ Group members: '() Group memberships: '() Read-write Proxy For: '() Read-only Proxy For: '() Calendar Homes: -> /calendars/__uids__/sagen/ <http://localhost:8008/calendars/__uids__/sagen/> Calendar user addresses: -> /principals/__uids__/sagen/ <http://localhost:8008/principals/__uids__/sagen/> -> /principals/users/sagen/ <http://localhost:8008/principals/users/sagen/> -> mailto:sagen@example.com <sagen@example.com> -> urn:uuid:sagen Address Book homes: -> /addressbooks/__uids__/sagen/ <http://localhost:8008/addressbooks/__uids__/sagen/> -----------------------------------sagen end---------------------------- -----------------------------------user08 start---------------------------- http://localhost:8008/principals/users/user08/ Group members: '() Group memberships: '() Read-write Proxy For: '() Read-only Proxy For: '() Calendar Homes: -> /calendars/__uids__/user08/ <http://localhost:8008/calendars/__uids__/user08/> Calendar user addresses: -> /principals/__uids__/user08/ <http://localhost:8008/principals/__uids__/user08/> -> /principals/users/User%2008/ <http://localhost:8008/principals/users/User%2008/> -> /principals/users/user08/ <http://localhost:8008/principals/users/user08/> -> mailto:user08@example.com <user08@example.com> -> urn:uuid:user08 Address Book homes: -> /addressbooks/__uids__/user08/ <http://localhost:8008/addressbooks/__uids__/user08/> -----------------------------------user08 end---------------------------- On Fri, Dec 5, 2014 at 12:53 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 12:38:36 PM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
Relevant Group : 'group01'
Relevant User : 'cdaboo'
Definitely remove the <members> element from the cdaboo user. Restart the server and look at cdaboo, sagen, user01 and user08 in a browser.
-- Cyrus Daboo
Hi Gaurav, --On December 5, 2014 at 1:05:03 PM -0800 Gaurav Jain <monkeyfdude@gmail.com> wrote:
Please see my output below. I did get memberships for 'user01' mentioned in group record 'disabledgroup'
OK, so what is going on here is that we have a special group membership caching strategy. Basically, because the number of groups in an organization can be large, we do not iterate all groups and cache membership. Instead we look for which groups are referenced as calendar proxies or other relevant ways, and then only cache membership for those. So, if you look at user20 you will see them listed in group05 because group05 is used as a proxy. What exactly are you trying to do with groups? -- Cyrus Daboo
My use case is as follows: * iCal client * CalServer-5.2.2 * client has a local cache of its 'group memberships' * client wants to schedule an event for group 'group01' * Before it can do so, client need to make sure that it is *still* a member of 'group01' * client treats CalServer as source of truth * So it asks for its group memberships from the server before it can create an event. Hence I was looking for a REST api to get the same from Calendar Server. On Fri, Dec 5, 2014 at 1:12 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 1:05:03 PM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
Please see my output below. I did get memberships for 'user01' mentioned
in group record 'disabledgroup'
OK, so what is going on here is that we have a special group membership caching strategy. Basically, because the number of groups in an organization can be large, we do not iterate all groups and cache membership. Instead we look for which groups are referenced as calendar proxies or other relevant ways, and then only cache membership for those. So, if you look at user20 you will see them listed in group05 because group05 is used as a proxy.
What exactly are you trying to do with groups?
-- Cyrus Daboo
Please note each can client create its own set of groups. On Fri, Dec 5, 2014 at 1:20 PM, Gaurav Jain <monkeyfdude@gmail.com> wrote:
My use case is as follows:
* iCal client * CalServer-5.2.2 * client has a local cache of its 'group memberships' * client wants to schedule an event for group 'group01' * Before it can do so, client need to make sure that it is *still* a member of 'group01' * client treats CalServer as source of truth
* So it asks for its group memberships from the server before it can create an event.
Hence I was looking for a REST api to get the same from Calendar Server.
On Fri, Dec 5, 2014 at 1:12 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 1:05:03 PM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
Please see my output below. I did get memberships for 'user01' mentioned
in group record 'disabledgroup'
OK, so what is going on here is that we have a special group membership caching strategy. Basically, because the number of groups in an organization can be large, we do not iterate all groups and cache membership. Instead we look for which groups are referenced as calendar proxies or other relevant ways, and then only cache membership for those. So, if you look at user20 you will see them listed in group05 because group05 is used as a proxy.
What exactly are you trying to do with groups?
-- Cyrus Daboo
Since I am in development mode and probably will not be dealing with large scale in near future.....is there a way I can simply ignore cache or cache everything? cache everything will be better as I am not dealing with scale for right now. On Fri, Dec 5, 2014 at 1:22 PM, Gaurav Jain <monkeyfdude@gmail.com> wrote:
Please note each can client create its own set of groups.
On Fri, Dec 5, 2014 at 1:20 PM, Gaurav Jain <monkeyfdude@gmail.com> wrote:
My use case is as follows:
* iCal client * CalServer-5.2.2 * client has a local cache of its 'group memberships' * client wants to schedule an event for group 'group01' * Before it can do so, client need to make sure that it is *still* a member of 'group01' * client treats CalServer as source of truth
* So it asks for its group memberships from the server before it can create an event.
Hence I was looking for a REST api to get the same from Calendar Server.
On Fri, Dec 5, 2014 at 1:12 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 1:05:03 PM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
Please see my output below. I did get memberships for 'user01' mentioned
in group record 'disabledgroup'
OK, so what is going on here is that we have a special group membership caching strategy. Basically, because the number of groups in an organization can be large, we do not iterate all groups and cache membership. Instead we look for which groups are referenced as calendar proxies or other relevant ways, and then only cache membership for those. So, if you look at user20 you will see them listed in group05 because group05 is used as a proxy.
What exactly are you trying to do with groups?
-- Cyrus Daboo
Hi Gaurav, --On December 5, 2014 at 1:35:04 PM -0800 Gaurav Jain <monkeyfdude@gmail.com> wrote:
Since I am in development mode and probably will not be dealing with large scale in near future.....is there a way I can simply ignore cache or cache everything?
cache everything will be better as I am not dealing with scale for right now.
There is no configuration option for that. If you want to change the code, look for the module twistedcaldav/directory/directory.py and locate the method getGroups() in the class GroupMembershipCacheUpdater. Change the "if guids is None:" statement to "if True:". That should force all groups to be faulted in. -- Cyrus Daboo
Thanks a lot...I will change the code.... Last question "faulted in" means "cache everything" or "dont cache" Best Regards, On Fri, Dec 5, 2014 at 1:51 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 1:35:04 PM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
Since I am in development mode and probably will not be dealing with large
scale in near future.....is there a way I can simply ignore cache or cache everything?
cache everything will be better as I am not dealing with scale for right now.
There is no configuration option for that. If you want to change the code, look for the module twistedcaldav/directory/directory.py and locate the method getGroups() in the class GroupMembershipCacheUpdater. Change the "if guids is None:" statement to "if True:". That should force all groups to be faulted in.
-- Cyrus Daboo
Just an FYI, I did make the above changes in directory.py and deleted the memberships_cache file and re-ran the server. I still did not get the memberships for uuid "cdaboo" I did print logs after if True to make sure it gets called. I will investigate more but here is the relevant console output of server 2014-12-05 15:40:18-0800 [-] [caldav-0] [PooledMemCacheProtocol,client] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] Acquired lock 2014-12-05 15:40:18-0800 [-] [caldav-0] [PooledMemCacheProtocol,client] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] Retrieving list of all proxies 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] There are 4 proxies 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] Retrieving group hierarchy from directory 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] group06 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] group05 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] group04 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] group03 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] group02 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] group01 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] group07 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] ------------------------------------ 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] disabledgroup 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] 8 groups retrieved from the directory 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] 2 groups are proxies 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] There are 6 users delegated-to via groups 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] Taking snapshot of group memberships to /Users/gauravjain/development/calendar/CalendarServer-5.2.2/data/Data/memberships_cache 2014-12-05 15:40:18-0800 [-] [caldav-0] [-] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] Storing 6 group memberships in memcached 2014-12-05 15:40:18-0800 [-] [caldav-0] [PooledMemCacheProtocol,client] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] Releasing lock 2014-12-05 15:40:18-0800 [-] [caldav-0] [PooledMemCacheProtocol,client] [twistedcaldav.directory.directory.GroupMembershipCacheUpdater#info] Group memberships cache updated On Fri, Dec 5, 2014 at 1:54 PM, Cyrus Daboo <cdaboo@apple.com> wrote:
Hi Gaurav,
--On December 5, 2014 at 1:53:10 PM -0800 Gaurav Jain < monkeyfdude@gmail.com> wrote:
Thanks a lot...I will change the code....
Last question "faulted in" means "cache everything" or "dont cache"
Cache everything.
-- Cyrus Daboo
participants (3)
-
Andre LaBranche
-
Cyrus Daboo
-
Gaurav Jain